ExcelVBA

【ExcelVBA・マクロ】ガントチャートを自動作成するマクロ|開始日・終了日・進捗率からスケジュールバーを自動生成【コピペOK】

プロジェクトの進捗管理でおなじみの「ガントチャート」。専用ツールを使わずにExcelで作っている方も多いと思いますが、タスクが増えるたびにセルを1つずつ塗り直すのは意外と手間がかかります。この記事では、タスク一覧表(タスク名・開始日・終了日...
ExcelVBA

【ExcelVBA・マクロ】VBAプロジェクトにパスワードを設定する方法|SendKeysでコードを保護する仕組みと限界【コピペOK】

社内で配布するExcelツールのマクロを、他の人に見られたり改変されたりしたくない――そう考えたことがある方は多いと思います。VBEの画面から手動でパスワードを設定することはできますが、配布用ファイルを量産する場合は、この設定作業も自動化で...
ExcelVBA

【ExcelVBA・マクロ】Application.Calculationの使い方完全ガイド|手動計算・自動計算の切り替えで処理を高速化する方法【コピペOK】

数式がたくさん入ったシートにVBAでセルの値を大量に書き込むと、1回書き込むたびにExcelが再計算を行うため、処理がどんどん遅くなっていきます。この再計算のタイミングをVBAからコントロールできるのがApplication.Calcula...
ExcelVBA

【ExcelVBA・マクロ】近似曲線(トレンドライン)をVBAで追加する方法|Trendlines.Addで種類・予測値を自動設定【コピペOK】

Excelのグラフに近似曲線(トレンドライン)を手動で追加している方は多いのではないでしょうか。データの傾向を確認したり、将来の値を予測したりするのに便利な機能ですが、グラフの数が多いと1つずつ設定するのは手間がかかります。この記事では、V...
ExcelVBA

【ExcelVBA・マクロ】GetOpenFilenameで複数ファイルを選択する方法|MultiSelect:=Trueの使い方【コピペOK】

複数のExcelファイルやCSVファイルをまとめて取り込みたいとき、ファイルを1つずつ選んで実行するのは面倒です。Application.GetOpenFilename に MultiSelect:=True を指定すると、ダイアログ上で複...
ExcelVBA

【ExcelVBA・マクロ】グラフの軸(Axis)をVBAでカスタマイズする方法|最大値・目盛間隔・第2軸の設定【コピペOK】

ExcelVBAでグラフの種類やデータ範囲を自動化できるようになると、次に気になるのが「軸(Axis)」の見た目です。最大値や目盛間隔がグラフごとにバラバラだと、資料としての完成度が下がってしまいます。この記事では、グラフの軸をVBAから操...
ExcelVBA

【ExcelVBA・マクロ】セルのグループ化・アウトライン機能を自動設定する方法|Group・Outline.ShowLevelsの使い方【コピペOK】

行数の多い集計表を扱っていると、「詳細行は普段は隠しておき、必要なときだけ展開して見たい」という場面がよくあります。Excelの「グループ化(アウトライン機能)」を使えば、行や列を折りたたんで見やすくできますが、毎回手作業で範囲選択してグル...
ExcelVBA

【ExcelVBA・マクロ】UserFormのImageコントロールに画像を表示する方法|LoadPictureとPictureSizeModeの使い方【コピペOK】

UserFormでテキストボックスやリストボックスを使ったフォームは作れても、「選んだファイルの画像をプレビュー表示したい」といった場面でImageコントロールの使い方が分からず止まってしまうことがあります。この記事では、UserFormの...
ExcelVBA

【ExcelVBA・マクロ】2次元配列(多次元配列)の使い方完全ガイド|Range⇔配列変換とジャグ配列の代用方法【コピペOK】

ExcelVBAで表形式のデータを扱っていると、「1次元配列だけでは行と列の情報を管理しきれない」と感じる場面が出てきます。そんなときに便利なのが2次元配列(多次元配列)です。この記事では、2次元配列の宣言方法から、セル範囲(Range)と...
ExcelVBA

【ExcelVBA・マクロ】罫線(Borders)の設定方法完全ガイド|LineStyle・Weight・ColorとxlEdge指定の使い分け【コピペOK】

Excelで表を作るとき、罫線の設定に手間取ったことはないでしょうか。上下左右だけ引きたい、格子状に引きたい、二重線で強調したいなど、罫線には細かいパターンがあります。手作業で毎回設定するのは面倒ですが、VBAの Borders を使えば、...