ExcelVBA

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

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

【ExcelVBA・マクロ】ChartTypeの使い方|棒グラフ・折れ線グラフなどグラフの種類を自動切り替えする方法【コピペOK】

Excelでグラフを作ったあと、「やっぱり棒グラフより折れ線グラフの方が見やすい」と種類を変更したくなることがあります。手動でグラフの種類を変えるのは数クリックで済みますが、複数のグラフをまとめて切り替えたい、ボタン一つで表示形式を切り替え...
ExcelVBA

【ExcelVBA・マクロ】ピボットテーブルのタイムライン(Timeline)をVBAで操作する方法|期間フィルタを自動設定【コピペOK】

ピボットテーブルで日付データを集計しているとき、「今月分だけ」「今四半期だけ」のように期間を絞り込みたい場面は多いはずです。手動で日付フィールドのフィルタを操作してもよいのですが、Excel 2013以降で使える「タイムライン」機能を使うと...
ExcelVBA

【ExcelVBA・マクロ】複数シートを串刺し集計する3D参照の書き方|Sheet1:Sheet3!A1でまとめて合計する方法【コピペOK】

「支店ごと」「月ごと」に同じフォーマットのシートが並んでいて、それらを串刺しでまとめて集計したい、という場面はよくあります。シートを1枚ずつSUMするのは面倒ですし、シート数が増減するたびに数式を書き直すのも手間です。こうしたときに便利なの...
ExcelVBA

【ExcelVBA・マクロ】Application.Evaluateの使い方|文字列の数式をVBAで計算・実行する方法【コピペOK】

ExcelVBAで「文字列として組み立てた数式を、その場で計算したい」と思ったことはないでしょうか。たとえば「A1/B1」のような数式をセルに書き込まずに結果だけ知りたい場合や、動的に生成したSUMPRODUCT数式を実行したい場合などです...
ExcelVBA

【ExcelVBA・マクロ】Worksheet_SelectionChangeイベントの使い方|選択中の行・列を自動ハイライトする方法【コピペOK】

はじめにExcelでたくさんのデータを扱っていると、「今どのセルを選択しているのか」を見失ってしまうことはありませんか。特に列数・行数が多い表では、選択中のセルがどの行・列にあるのか目で追うのが大変です。この記事では、Worksheet_S...
ExcelVBA

【ExcelVBA・マクロ】ウィンドウ枠の固定・分割をVBAで操作する方法|FreezePanes・Splitの使い方【コピペOK】

はじめにExcelで見出し行が多い表を扱っていると、下にスクロールしたときに「今見ている行が何の項目なのか」分からなくなってしまうことがあります。そんなときに便利なのが「ウィンドウ枠の固定」機能です。この記事では、ウィンドウ枠の固定(見出し...
ExcelVBA

【ExcelVBA・マクロ】ChartObjectのデータ範囲を自動拡張する方法|SetSourceDataでグラフを自動更新するマクロ【コピペOK】

はじめにExcelでグラフを作成したあと、表にデータを追加したのにグラフに反映されない、という経験はありませんか。グラフの参照範囲が固定されたままだと、新しく増えたデータが自動でグラフに表示されず、そのたびに手作業で範囲を修正する必要があり...
ExcelVBA

【ExcelVBA・マクロ】ADODB.Streamの使い方|BOMなしUTF-8でテキストファイルを読み書きする方法【コピペOK】

はじめにExcel VBAでテキストファイルを扱うとき、OpenステートメントやPrint #を使う方法は手軽ですが、文字コードがShift-JIS(ANSI)固定になってしまい、UTF-8で保存したいときには不向きです。特に、他システムと...
ExcelVBA

【ExcelVBA・マクロ】WMIでPCのCPU・メモリ・ディスク情報を取得する方法|GetObject(“winmgmts:”)の使い方【コピペOK】

はじめに社内で配布するExcelツールを作っていると、「実行しているPCのスペックによって処理を分岐させたい」「動作環境の情報をログに残しておきたい」といった場面に出会うことがあります。Environ関数を使えばユーザー名やコンピューター名...