shikumika’s diary

日々の事務作業で手間なことを簡単にできる仕組み(自動化、方法など)、困ったことの解決方法を調べた備忘録

VBA

【Excel VBA】複数ブックのシートを一つのブックにまとめるサンプル

VBA

Excelのデータ集計業務は、Power Queryを使うことで効率化が図れる場面が多くあります。 しかし、Power Queryでは扱いにくいデータ操作もあり、自動化を考慮するとVBAの活用が効率的となることもあります。 特に、いわゆる「神エクセル」と言われるような、…

【Excel VBA】テーブルに別ファイルのデータをインポート

Excelのテーブルに「別ファイルのシートにあるデータ」をインポートし、テーブルのデータを更新するVBAサンプルの備忘録。 作成の背景は、Power Queryで同じファイル内のシート(テーブル)をデータソースとする管理をしたいが、元のデータ自体は別ファイル…

【Excel VBA】置換リストで都度確認しながらWord文書の文字列を置換

前回の 【Excel VBA】Excelの置換リストでWord文書の文字列を一括置換 をベースに、置換対象を都度確認しながら実行するVBAのサンプル。置換リストで一致したキーワードについて、都度、置換するかのメッセージを表示し、確認しながら置換を実行します。 「…

【Word】VBA実行後も「元に戻す」は可能だが、変更履歴の記録が便利

WordのVBAは、ExcelのVBAと違い、VBA実行後に「元に戻す」(Ctrl+Z、Undo)が可能。ただし、既定の戻れる最大数は100のようで、VBA実行前にはファイルやフォルダのバックアップを取る習慣は大事。加えて、加えて、Wordの場合は、変更履歴の記録をONにすると…

【Excel】VBA実行後に 「元に戻す」はできないので事前対処

VBA

ExcelのVBA実行後、「元に戻す」(Ctrl+Z、undo)はできません。VBAの実行で誤った操作や予期せぬ結果が発生して困ることがあるので、事前に対処方法を考えておくことが重要です。VBAでファイルコピーする方法などバックアップ方法の備忘録。

【Excel VBA】Excelの置換リストでWord文書の文字列を一括置換

ExcelのVBAで、置換リストからWord文書の文字列を一括置換する方法のサンプル。前回のWordのVBAを使用した「Word文書の文字列をExcelの置換リストで一括置換する方法」と同様のことをExcelのVBAで実施するサンプルを作成してみました。置換リストの内容に応…

【Word VBA】Word文書の文字列をExcelの置換リストで一括置換

WordのVBAで、Excelで作成の置換リストを選択し、Word文書内の文字列を一括で置換する方法の備忘録。執筆ルールに従った修正業務を効率化するため、Excelの置換リストで一括置換するVBAサンプルを作成してみました。

【Word VBA】Excelシートの最終行取得(xlUpで実行時エラー 424の対応)

WordのVBAで、Excelのシートにある情報を使った繰り返し処理等をするために、最終行取得をしようとすると「実行時エラー424」となったので解決方法の備忘録。なお、使用のバージョンは「Microsoft® Word for Microsoft 365 MSO」。

【Excel】OneDriveのファイルURLをローカルパスに変換(数式で文字列の置換)

Excelの数式で、CELL(“filename”,A1)やVBAのThisWorkbook.Pathを使用したとき、OneDriveに同期したフォルダではローカルパスが取得できず、VBA等が適切に動作しないことがあります。Excelの数式を利用して、OneDriveのファイルURLをローカルパスに変換してみ…

【Excel】ファイルの保存場所変更に備えた準備(ファイルパスの自動更新)

リンクの設定等があるExcelファイルの場合、保存場所の変更に注意が必要です。特に、VBAやPower Queryなどで固定のファイルパスに依存した構築を行うと、Excelに不慣れな人がファイルの保存場所変更に対応できない等の問題が生じる可能性があります。 ファイ…

【Excel】VBAで「 テーブルをセル範囲に変換してエクスポート」のサンプル

Excelのテーブル機能やPower Queryを含むファイルを他者に渡すことが妥当でないケースが時折あります。そこで、VBAで「 テーブルをセル範囲に変換してエクスポート」のサンプルを作成してみた備忘録です。

【Excel】VBAのメンテナンス性向上のため設定情報をテキストボックスに記載

VBA

VBAの利用で、業務の属人化によるリスクが指摘されることがよくあります。そのため、誰かとVBAを含むExcelファイルを共有するような場合、業務変更が生じても少しExcelに詳しければ修正ができるようにと、初期値や設定情報をExcelのシートに記載などの対応を…

【Excel】VBAで、印刷時に文字が切れないように行高さを設定するサンプル

Excelを使用してセルに長文を入力し、複数行表示にしたデータを印刷すると、文章の下端が切れてしまうことがあります。 その原因と解決方法の基本は次のとおりで、標準フォントで調整が必要。 shikumika.org しかし、複数のフォントを使用していたり標準フォ…

【Excel】VBAで列幅と行高さを設定する際は単位の違いに注意

ExcelのVBAを使用して、列幅や行高さを設定する際は単位の違いに注意が必要。知らないと混乱の元になるので備忘録。 具体的には、行の高さを設定するRowHeightと、列の幅を設定するColumnWidthを使って、 Rows(1).RowHeight = 30 Columns(1).ColumnWidth = 3…

【Word】VBAで、画像は「レイアウト(文字列の折り返し)」によってオブジェクトが変わる

Wordの画像は「レイアウト(文字列の折り返し)」で行内に設定されているか否かでVBAでの処理方法が違うのでメモ。 例えば、以下で作成したVBAサンプルは、レイアウトが行内に設定された図が対象で、他のレイアウトだと処理できない。Wordのファイル内にある…

【Word】VBAで画像のレイアウトを行内から「上下の文字配置」に変更

WordのVBAで、画像のレイアウトを行内から上下の文字配置に変更するサンプル。 必要になった背景は、Wordの画像は「レイアウト オプション」で行内に設定されていると、画像の複数選択ができないようで一括での更新が手間だったため。 それで、次のような簡…

【Word】VBAでステップ記録ツールのmhtファイルを編集する準備

WordのVBAで、ステップ記録ツールのmhtファイルをWordで編集するポイント で示した最初のルーチンについて、一通りのパーツ(VBAの各サンプル)が作成できました(目的は、手順書を作成です)。 この最初のルーチン(各サンプルVBAの実行)を実行することで…

【Word】特定の単語を検索し、その単語間にある文章を削除する方法

Wordで、特定の単語を検索し、その単語間にある文章を削除したい場合があります。 そのような時に役立つのも、Wordの置換機能で「ワイルドカードを使用した検索」です。 ワイルドカードを使用することで、特定の単語間にある文章を検索して削除することがで…

【Word】特定のパターンに一致する文字列検索と置換のサンプル

Wordは特定のパターンに一致する文字列検索もできます。いわゆる正規表現に近い検索が可能です。 例えば、ステップ記録ツールのmhtファイルをWordで編集するポイント で示した作業では、 Step 1: (2023/05/18 18:41:10) ユーザーによる・・・ Step 2: (2023/…

【Word】単語中の一部だけが違う類似文字列の一括検索と置換

Wordで、単語中の一部だけが違う類似文字列の一括検索と置換。いわゆる「ワイルドカードを使用した検索」と置換の備忘録。 具体的には、ステップ記録ツールのmhtファイルをWordで編集するポイント で示した作業で、ファイル内に 手順 1 のスクリーン ショッ…

【Word】ファイル内のフィールドを一括削除する方法(一括置換とVBA)

Wordファイルで、ファイル内にある「フィールド」を一括で削除する方法の備忘録。 背景は、ステップ記録ツールのmhtファイルをWordで編集するポイント で示したように、「Previous Next」などのハイパーリンクが余分で削除したかったため。 「Previous Next…

【Word】ファイル内にある余分な水平線を一括削除するVBAのサンプル

Wordファイルで、ファイル内にある余分な図形タイプ(水平線)を一括で削除するVBAサンプル。 変更対象の図は、行内に設定された図(インライン図形)で、水平線のタイプ。 Sub 水平線の一括変更() Dim 画像 As Object For Each 画像 In ActiveDocument.Inli…

【Excel】VBAで、PowerQueryの更新を待ってピボットテーブルを更新

VBAで、PowerQueryの更新を待ってピボットテーブルを更新するときの備忘録。PowerQueryの更新が完了してから次の処理を実行したいときはBackgroundQuery プロパティがFalseの状態にしておく。 以下は、PowerQueryの更新を待たずにピボットテーブルが更新され…

Accessのマクロは、VBAのSub、関数の日本語名も使えない?

久しぶりにAccessを使ったデータ整理。 最近は、 Power Queryで近いことができるようになっていますが、リレーションを維持して入力や編集をする場合はAccessの方が、まだ便利です。 処理の一部を自動化したいと思い、VBAを使用しない人のために、全体の処理…

Wordで、ファイル内の画像サイズを一括変更するVBAのサンプル

Wordファイルで、ファイル内にある数十個の図形サイズを一括で更新するVBA。Word の画像サイズを一括変更する際、行内に設定された図は、 CtrlキーやShiftキーを押しての複数選択ができず、一つずつ選択しての設定が必要だったのでVBAで作成してみた備忘録。…

VBAでSubとFunctionの違いは? 使い分けに悩んだ場合の対応

VBA

VBAで「Subプロシージャ」と「Functionプロシージャ」の違い、使い分け。悩んだときは全て「Functionプロシージャ」で良い。SubとFunctionの主な違いは、次のとおりです。