VBA
ExcelのVBAで、複数シートのデータを抽出して一つのシートにまとめる事例の備忘録。前回、INDIRECT関数を活用して「複数シートのデータを抽出して一つにまとめる方法」を記載しました。この方法は、シートの枚数が多い場合や、繰り返しシートの更新がある場…
Excelのデータ集計業務は、Power Queryを使うことで効率化が図れる場面が多くあります。 しかし、Power Queryでは扱いにくいデータ操作もあり、自動化を考慮するとVBAの活用が効率的となることもあります。 特に、いわゆる「神エクセル」と言われるような、…
Excelのテーブルに「別ファイルのシートにあるデータ」をインポートし、テーブルのデータを更新するVBAサンプルの備忘録。 作成の背景は、Power Queryで同じファイル内のシート(テーブル)をデータソースとする管理をしたいが、元のデータ自体は別ファイル…
前回の 【Excel VBA】Excelの置換リストでWord文書の文字列を一括置換 をベースに、置換対象を都度確認しながら実行するVBAのサンプル。置換リストで一致したキーワードについて、都度、置換するかのメッセージを表示し、確認しながら置換を実行します。 「…
WordのVBAは、ExcelのVBAと違い、VBA実行後に「元に戻す」(Ctrl+Z、Undo)が可能。ただし、既定の戻れる最大数は100のようで、VBA実行前にはファイルやフォルダのバックアップを取る習慣は大事。加えて、加えて、Wordの場合は、変更履歴の記録をONにすると…
ExcelのVBA実行後、「元に戻す」(Ctrl+Z、undo)はできません。VBAの実行で誤った操作や予期せぬ結果が発生して困ることがあるので、事前に対処方法を考えておくことが重要です。VBAでファイルコピーする方法などバックアップ方法の備忘録。
ExcelのVBAで、置換リストからWord文書の文字列を一括置換する方法のサンプル。前回のWordのVBAを使用した「Word文書の文字列をExcelの置換リストで一括置換する方法」と同様のことをExcelのVBAで実施するサンプルを作成してみました。置換リストの内容に応…
WordのVBAで、Excelで作成の置換リストを選択し、Word文書内の文字列を一括で置換する方法の備忘録。執筆ルールに従った修正業務を効率化するため、Excelの置換リストで一括置換するVBAサンプルを作成してみました。
WordのVBAで、Excelのシートにある情報を使った繰り返し処理等をするために、最終行取得をしようとすると「実行時エラー424」となったので解決方法の備忘録。なお、使用のバージョンは「Microsoft® Word for Microsoft 365 MSO」。
Excelの数式で、CELL(“filename”,A1)やVBAのThisWorkbook.Pathを使用したとき、OneDriveに同期したフォルダではローカルパスが取得できず、VBA等が適切に動作しないことがあります。Excelの数式を利用して、OneDriveのファイルURLをローカルパスに変換してみ…
リンクの設定等があるExcelファイルの場合、保存場所の変更に注意が必要です。特に、VBAやPower Queryなどで固定のファイルパスに依存した構築を行うと、Excelに不慣れな人がファイルの保存場所変更に対応できない等の問題が生じる可能性があります。 ファイ…
Excelのテーブル機能やPower Queryを含むファイルを他者に渡すことが妥当でないケースが時折あります。そこで、VBAで「 テーブルをセル範囲に変換してエクスポート」のサンプルを作成してみた備忘録です。
VBAの利用で、業務の属人化によるリスクが指摘されることがよくあります。そのため、誰かとVBAを含むExcelファイルを共有するような場合、業務変更が生じても少しExcelに詳しければ修正ができるようにと、初期値や設定情報をExcelのシートに記載などの対応を…
Excelを使用してセルに長文を入力し、複数行表示にしたデータを印刷すると、文章の下端が切れてしまうことがあります。 その原因と解決方法の基本は次のとおりで、標準フォントで調整が必要。 shikumika.org しかし、複数のフォントを使用していたり標準フォ…
ExcelのVBAを使用して、列幅や行高さを設定する際は単位の違いに注意が必要。知らないと混乱の元になるので備忘録。 具体的には、行の高さを設定するRowHeightと、列の幅を設定するColumnWidthを使って、 Rows(1).RowHeight = 30 Columns(1).ColumnWidth = 3…
Wordの画像は「レイアウト(文字列の折り返し)」で行内に設定されているか否かでVBAでの処理方法が違うのでメモ。 例えば、以下で作成したVBAサンプルは、レイアウトが行内に設定された図が対象で、他のレイアウトだと処理できない。Wordのファイル内にある…
WordのVBAで、画像のレイアウトを行内から上下の文字配置に変更するサンプル。 必要になった背景は、Wordの画像は「レイアウト オプション」で行内に設定されていると、画像の複数選択ができないようで一括での更新が手間だったため。 それで、次のような簡…
WordのVBAで、ステップ記録ツールのmhtファイルをWordで編集するポイント で示した最初のルーチンについて、一通りのパーツ(VBAの各サンプル)が作成できました。目的は、手順書を作成です。 この最初のルーチン(各サンプルVBAの実行)を実行することで、…
Wordで、特定の単語を検索し、その単語間にある文章を削除したい場合があります。 そのような時に役立つのも、Wordの置換機能で「ワイルドカードを使用した検索」です。 ワイルドカードを使用することで、特定の単語間にある文章を検索して削除することがで…
Wordは特定のパターンに一致する文字列検索もできます。いわゆる正規表現に近い検索が可能です。 例えば、ステップ記録ツールのmhtファイルをWordで編集するポイント で示した作業では、 Step 1: (2023/05/18 18:41:10) ユーザーによる・・・ Step 2: (2023/…
Wordで、単語中の一部だけが違う類似文字列の一括検索と置換。いわゆる「ワイルドカードを使用した検索」と置換の備忘録。 具体的には、ステップ記録ツールのmhtファイルをWordで編集するポイント で示した作業で、ファイル内に 手順 1 のスクリーン ショッ…
Wordファイルで、ファイル内にある「フィールド」を一括で削除する方法の備忘録。 背景は、ステップ記録ツールのmhtファイルをWordで編集するポイント で示したように、「Previous Next」などのハイパーリンクが余分で削除したかったため。 「Previous Next…
Wordファイルで、ファイル内にある余分な図形タイプ(水平線)を一括で削除するVBAサンプル。 変更対象の図は、行内に設定された図(インライン図形)で、水平線のタイプ。 Sub 水平線の一括変更() Dim 画像 As Object For Each 画像 In ActiveDocument.Inli…
VBAで、PowerQueryの更新を待ってピボットテーブルを更新するときの備忘録。PowerQueryの更新が完了してから次の処理を実行したいときはBackgroundQuery プロパティがFalseの状態にしておく。 以下は、PowerQueryの更新を待たずにピボットテーブルが更新され…
久しぶりにAccessを使ったデータ整理。 最近は、 Power Queryで近いことができるようになっていますが、リレーションを維持して入力や編集をする場合はAccessの方が、まだ便利です。 処理の一部を自動化したいと思い、VBAを使用しない人のために、全体の処理…
Wordファイルで、ファイル内にある数十個の図形サイズを一括で更新するVBA。Word の画像サイズを一括変更する際、行内に設定された図は、 CtrlキーやShiftキーを押しての複数選択ができず、一つずつ選択しての設定が必要だったのでVBAで作成してみた備忘録。…
VBAで「Subプロシージャ」と「Functionプロシージャ」の違い、使い分け。悩んだときは全て「Functionプロシージャ」で良い。SubとFunctionの主な違いは、次のとおりです。