ExcelVBA

マクロで文字列の置換はVBA関数のReplace|4つの方法を比較

置換についてはどの方法を使えばよいのか分からないという質問が多いです。実際に方法は複数存在します。本記事では4つの方法を深堀し比較して1つの結論を出しました。マクロで文字列の置換はVBA関数のReplace関数1択です。
ExcelVBA

マクロでグラフを新規作成|関連オブジェクトをもとに3種類の方法を紹介

マクロでグラフを新規作成する方法を解説します。VBAを使ったグラフの作成は「複雑で分かりにくい」様です。理由としては作成方法が3種類あり情報が整理できていない事が挙げられます。情報を整理して簡単にグラフを作成出来るように解説していきます。
ExcelVBA

マクロ学習時におすすめの作業環境|Kindle×デュアルモニター

書籍を見ながら実際にパソコンで作業をする際本の取り回しで困った事はありませんか?本記事では私がVBAを学習していた頃に最も良いと感じた作業環境を紹介します。この環境なら学習の継続が可能です。おすすめは「Kindle×デュアルモニター」です。
ExcelVBA

VBA|InputBoxメソッドで戻り値空白とキャンセルの処理を分ける

InputBoxメソッドでは戻り値空白の時とキャンセルボタンが押された時の処理を分ける事ができます。本記事ではInputBoxメソッドと一緒にIsNumeric関数を使ってユーザーが使いやすい操作環境を用意します。
ExcelVBA

【応用編】ExcelVBAでピボットテーブルと連動したグラフを自動で作成する

VBAでピボットテーブルと連動したグラフを作成する 本記事はピボットテーブルの作り方を紹介した以下記事から続く内容となっております。(本記事単体でも理解できます) リンク先の記事を読んだ後に本記事をご覧いただくとピボットテーブルからグラフと...
ExcelVBA

【基本編】VBA×ピボットテーブルの作り方|レポートにフィールドを追加する

VBAを使ったピボットテーブルの作り方を紹介します。集計データからのテーブル、グラフの作成もVBAなら数秒で作業終了です。作成されたテーブルはフィルターなど便利な機能が用意され「見易い」かつ「使いやすい」データとなります。
ExcelVBA

VBAのFindメソッドは変数が難しい|文字列検索はLike演算子!

私は特定の文字列や数値の検索時にFindメソッドは使いません。戻り値であるRangeオブジェクトの扱いが難しいからです。本記事ではFindメソッドの問題点を整理したうえでより簡単なLike演算子を使ったコードを紹介します。
ExcelVBA

マクロでフォルダ内のファイル名を取得|Excel以外の拡張子にも対応

「フォルダ内のファイル名を簡単に取得出来ませんか?」という問い合わせに対する回答を用意しました。マクロなら対応可能です。Excel以外の拡張子でもファイル名を取得する事ができます。拡張子を絞りたい方にも関連記事を用意しています。
目次

【逆引き】やりたい事から記事を選択できるようにしました

VBAを使ってやりたい事を起点に記事を並べました。目次をクリックすると関連の記事群に飛ぶ様にしています。やりたい事は英語のAからZの後に50音順で並べています。
ExcelVBA

VBA|最後のシートまで処理を繰り返す|変数をうまく使いこなそう

最後のシートまで処理を繰り返す時の定番は「For Each ~ Nextステートメント」ですが初心者様には「難しい」様です。今回はFor Each ~ Nextステートメントを「使う」or「使わない」2通りの方法でシートを周回してみます。
ExcelVBA

VBA|コードが長いプロシージャを短く切り分ける|マクロを部品化する

VBAが理解できる様になるとコードは短くスッキリ書けるのですが勉強初期ではプロシージャが長くなりがちです。可読性も作業性も悪いです。本記事では長いプロシージャを3つに分けて読みやすくするのと同時に作業性(メンテナンス性)も向上させます。
ExcelVBA

VBAはフォルダ内の複数ブック×全部のシート名をセットで取得できる

会社等集団でデータを扱う際は規則を決めないとフォルダ内に色々な名前のデータが混在します。現状把握を兼ねて棚卸しようとしても手作業では工数大です。今回は「フォルダ内の複数のワークブックと全部のワークシート名をセットで取得」を実践します。
ExcelVBA

マクロで特定文字を含むシートを選択|For Each ~ Next & Like

For Each ~ Nextステートメントはワークシートやセル等特定の集団内の要素に対しループで1つずつ処理する事ができる構文です。本記事ではFor Each ~ Nextステートメントの使い方を含め具体的な使用例を3つ紹介します。
ExcelVBA

Excelで絵を描く|数秒で写真や画像を簡単にセルに展開できるアプリを紹介

「Excelで絵を描く」アプリケーションを開発された方が居るようです。アプリ名はImage to Excelです。セルの大きさを調整して1つ1つのセルに色を付ける事でドット絵のような状態をExcel上に展開する事ができます。
ExcelVBA

【サンプルコード】VBAでクラスを使ったコードと使わないコードを比較する

クラスについて勉強後いざ実践となるとどうしたら良いのか考えてしまった事はありませんか?本記事ではクラスを用いたコードを実装するにあたりサンプルコードを用意しました。比較対象として同じアウトプットでクラスを使わないコードも用意しています。
ExcelVBA

Selenium×ExcelVBA|ラジオボタンの選択状態をチェックする方法

今回は複数の要素の中から1つの要素を選択する際に使用するラジオボタンについて記事を用意します。記事を読んでいただくとラジオボタンの選択状態をチェックする事が出来る様になります。読んでいただくとチェックボックスの理解にもつながりますよ。
ExcelVBA

【Selenium×VBA】テーブルの情報を取得|配列を使えば行数と列数も分かる

Webスクレイピングにおける便利機能を紹介します。「テーブルごと情報を配列に格納する」という方法です。テーブルの状態毎にコードを用意しなくても良いので時短にもつながります。追加でテーブルの行数と列数も獲得する事ができる仕様にしました。
ExcelVBA

【Selenium×VBA】ブラウザの最大化|ウインドウの大きさや位置を変える

Seleniumbasic経由で画面サイズを取得する事でウインドウの表示方法をコントロールする事ができます。取得した情報をもとにウインドウの最大化を含め大きさ、位置を決めることができます。うまく使えばプレゼンにも使う事ができますよ。
ExcelVBA

【Selenium×VBA】要素の有無を確認|実行時エラー7への対策

IsElementPresentメソッドを使うとWebページ内に指定要素が存在するのかをチェックする事ができます。加えてエラー回避の役割も果たします。応用編として内容が日々変化するURLの情報を取得する方法についてのヒントを提供します。
ExcelVBA

VBAを使ってWebからデータを取得|Webスクレイピングとは?できる事を教えて

「Webスクレイピングで何ができるのか?」回答はこの2つです。「Webサイトから情報を抜き取る」と「Webサイトに情報を入力する」です。これだけでは分かりにくいので4分程の動画を用意しました。何ができるのか視覚でとらえる事ができます。
ExcelVBA

【selenium×ExcelVBA】ウインドウ、タブを切り替える

Seleniumではウインドウのタイトルを指定する事で必要なウインドウを掴むことができます。ウインドウを指定する理由は各URLの要素はウインドウに紐付いているからです。タイトルを指定せずに隣のウインドウをつかむという操作もできます。
ExcelVBA

【selenium×VBA】取得したURLでハイパーリンクをつくる

スクレイピングでは特定のリンク先のURLを取得することもできます。取得したURLを使ってExcel上にハイパーリンクを用意することも可能です。Web内からリンク先記事のURLとタイトルを取得してExcelにハイパーリンクをセットします。
ExcelVBA

【VBA×selenium×JS】任意の要素まで簡単にスクロール

画面スクロールを再現します。今回は少しレベルを上げて他の言語を交えてコードを書いてみましょう。JavaScriptを使用します。要素を動的にコントロールする事が出来る様になります。コードはコピペで使って試せるように用意しています。
ExcelVBA

【selenium×VBA】右クリックを含めたマウス操作を再現

Webスクレイピングの際頻度は少ないのですが右クリックを必要とする場面があります。Webアプリケーションの操作をする際にご質問いただく事が多いという傾向があります。今回は右クリックとその後に表示される選択肢を選ぶためのコードを紹介します。
ExcelVBA

【Edge×Selenium×VBA】スクレイピング時の実行時エラー0への対策

Edge×selenium×VBAでWebスクレイピングを検討されている方向けの記事です。実行時エラー0でコードが止まった方は是非記事をご覧ください。ブラウザのバージョンアップに伴うドライバーの入れ替えについても参考になる記事です。
ExcelVBA

【selenium×VBA】XPath指定でClass属性を取得|Attribute

指定したパスに特定のClassが存在するのかを確認出来ないかずっと調べていました。回答を見つけたので記事にします。今回はAttributeメソッドを使います。このメソッドを使うと指定した属性が持つ他の属性を取得できる様になります。
ExcelVBA

VBA×Chrome/Edgeでスクレイピング|XPathとは?|動画で解説

この記事はVBA×Seleniumbasic×ChromeでWebスクレイピングを検討されている方向けの記事です。見ていただくと簡単にWebスクレイピングが出来る様になります。簡単だと書いている理由はXPathを使う為です。
ExcelVBA

VBA×Selenium×ChromeでWebスクレイピング|nameタグを使う

記事を読むとVBA×Seleniumbasic×Cromeの仕様でWebスクレイピングができます。加えてFindElementByNameメソッドの使い方が分かります。記事後半では動画を用意しています。Nameタグの探し方が分かります。
ExcelVBA

VBA×ChromeでWebスクレイピング難しい初期設定を分かりやすく解説

まずSeleniumbasicについて簡単に説明します。使用感の分かる動画も用意しました。続いて環境構築について解説しています。コードを書く前に必要な作業を理解する事が出来ます。最後にコードを解説している記事へのリンクを用意しました。
ExcelVBA

マクロで文字列の置換はVBA関数のReplace|4つの方法を比較

置換についてはどの方法を使えばよいのか分からないという質問が多いです。実際に方法は複数存在します。本記事では4つの方法を深堀し比較して1つの結論を出しました。マクロで文字列の置換はVBA関数のReplace関数1択です。
ExcelVBA

VBA|InputBoxメソッドで戻り値空白とキャンセルの処理を分ける

InputBoxメソッドでは戻り値空白の時とキャンセルボタンが押された時の処理を分ける事ができます。本記事ではInputBoxメソッドと一緒にIsNumeric関数を使ってユーザーが使いやすい操作環境を用意します。
ExcelVBA

VBAのFindメソッドは変数が難しい|文字列検索はLike演算子!

私は特定の文字列や数値の検索時にFindメソッドは使いません。戻り値であるRangeオブジェクトの扱いが難しいからです。本記事ではFindメソッドの問題点を整理したうえでより簡単なLike演算子を使ったコードを紹介します。
ExcelVBA

マクロでフォルダ内のファイル名を取得|Excel以外の拡張子にも対応

「フォルダ内のファイル名を簡単に取得出来ませんか?」という問い合わせに対する回答を用意しました。マクロなら対応可能です。Excel以外の拡張子でもファイル名を取得する事ができます。拡張子を絞りたい方にも関連記事を用意しています。
ExcelVBA

VBA|最後のシートまで処理を繰り返す|変数をうまく使いこなそう

最後のシートまで処理を繰り返す時の定番は「For Each ~ Nextステートメント」ですが初心者様には「難しい」様です。今回はFor Each ~ Nextステートメントを「使う」or「使わない」2通りの方法でシートを周回してみます。
ExcelVBA

VBA|コードが長いプロシージャを短く切り分ける|マクロを部品化する

VBAが理解できる様になるとコードは短くスッキリ書けるのですが勉強初期ではプロシージャが長くなりがちです。可読性も作業性も悪いです。本記事では長いプロシージャを3つに分けて読みやすくするのと同時に作業性(メンテナンス性)も向上させます。
ExcelVBA

VBAはフォルダ内の複数ブック×全部のシート名をセットで取得できる

会社等集団でデータを扱う際は規則を決めないとフォルダ内に色々な名前のデータが混在します。現状把握を兼ねて棚卸しようとしても手作業では工数大です。今回は「フォルダ内の複数のワークブックと全部のワークシート名をセットで取得」を実践します。
ExcelVBA

マクロで特定文字を含むシートを選択|For Each ~ Next & Like

For Each ~ Nextステートメントはワークシートやセル等特定の集団内の要素に対しループで1つずつ処理する事ができる構文です。本記事ではFor Each ~ Nextステートメントの使い方を含め具体的な使用例を3つ紹介します。
ExcelVBA

VBA×コピペ|値のみ貼り付け&簡単高速にコピーできる方法を公開

本記事はコピペ(コピー&ペースト)の中から「値貼り付け」にフォーカスを当てた記事です。値貼り付けにはPasteSpacialメソッドを使う事になります。一連の操作を紹介した後でより「簡単」&「高速」なコピペ(裏技)を紹介します。
ExcelVBA

VBA|MsgBoxの「保存」ボタンを使わずにデータをSaveする

VBAのMsgBox関数で「保存」ボタンは作成出来るのか?という質問をいただきました。結論としては「できない」のですが同じ効果を得る事はできます。少し違ったアプローチをすることでメッセージボックスからデータの保存を可能にしてみます。
ExcelVBA

VBA|Dir関数を使ってフォルダ内の複数ファイルを順番に処理する

マクロを書いたワークブックから別のワークブックを開いて作業をしたいなと思った事はありませんか?Dir関数ならフォルダ内に配置された複数のエクセルファイルを順番に開く事が可能です。事例+動画をもとにDir関数の使い方を詳しく解説します。
ExcelVBA

【VBA_再帰】複数フォルダ内を検索拡張子を決めて画像を取り出す

1つ前の記事で再帰の基本構造を解説しました。次は応用編です。階層の異なるフォルダ群を検索し特定の拡張子を持った画像データを取り出すというコードを紹介します。再帰を使う事でフォルダ群の隅々まで画像を検索する事ができます。
ExcelVBA

【ExcelVBA】再帰呼び出し(再帰処理)は3分の動画で理解できる

再帰呼び出し(再帰処理)について画像と非常に分かり易い動画を用いて解説していきます。今回の記事では再帰呼び出し自体の解説をします。再帰は非常に難しいのでコードを見ただけでは理解できません。そこでコードの流れが分かる画像と動画を用意しました。
ExcelVBA

【VBA】絶対パス相対パスの書き方|理解はカレントディレクトリがポイント

コードの中で別ファイルへアクセスする際はファイルパスを記入することになります。絶対パスか相対パスを使います。それぞれにメリット、デメリットがあり使いこなすには両方を正しく理解する必要があります。最後に第3の方法で書いたコードを紹介します。
ExcelVBA

InStrRev関数がうまくいかない時は戻り値の読み方を見直す

InstrRev関数の使い方を紹介。文字列の文末から特定文字を検索。最初に見つかった特定文字が文頭から見てどこに居るのかを確認し文字数を返します。うまくいかないという方は戻り値は文頭からの文字数だという事をご存知でない方が多い様です。
ExcelVBA

VBA|コードが長いプロシージャを短く切り分ける|マクロを部品化する

VBAが理解できる様になるとコードは短くスッキリ書けるのですが勉強初期ではプロシージャが長くなりがちです。可読性も作業性も悪いです。本記事では長いプロシージャを3つに分けて読みやすくするのと同時に作業性(メンテナンス性)も向上させます。
ExcelVBA

【VBA_再帰】複数フォルダ内を検索拡張子を決めて画像を取り出す

1つ前の記事で再帰の基本構造を解説しました。次は応用編です。階層の異なるフォルダ群を検索し特定の拡張子を持った画像データを取り出すというコードを紹介します。再帰を使う事でフォルダ群の隅々まで画像を検索する事ができます。
ExcelVBA

AddPictureメソッドエラー対策|指定された値は境界を超えています

AddPictureメソッドを使用した際「指定された値は境界を超えています」というエラーが出ます。引数のLinkToFileとSaveWithDocumentが両方共Falseの時にこのエラーが発生するのでエラーが出ない様に対策します。
ExcelVBA

AddPictureメソッドの第2、3引数の組み合わせ確認テスト

LinkToFileとSaveWithDocumentという引数について解説します。引数の内容自体が難しいのでうまく使いこなせている人は少ないです。記事内では全通りの組み合わせをテストしてみます。結果をマトリクスにまとめました。
ExcelVBA

VBAで画像を取り込む高速で画像自体を取得しエクセルに貼り付ける

「一定条件のもとフォルダから画像を取り出してエクセルに貼り付けるマクロを作りたい」の続編。900枚の画像処理は3秒で完了。2度手間は解消、0.1秒のウエイトは無しでも安定稼働します。キーはAddpictureメソッドです。
ExcelVBA

VBAで画像を取り込むフォルダを周回必要な画像をエクセルに貼り付け

複数フォルダ内の画像をキーワードを元にエクセルに貼り付ける方法を紹介 「一定条件のもとフォルダから画像を取り出しエクセルに貼り付けるマクロを作りたい」という依頼に対して作業をしてみました。