Word VBA/マクロ 備忘録

作業効率化のため作成したマクロをバックアップ代わりにアップしていきます。

Word VBA

【Word VBA/マクロ】使用スタイルのリスト表示

サンプルコードでできること 使用しているスタイルの一覧を取得して、メッセージボックスに表示します。 Sub getStyleList_Activedocument() Dim strList As String strList = getStyleList(ActiveDocument) MsgBox strList End Sub Private Function getSty…

【Word VBA/マクロ】段落書式コピー

サンプルコードでできること 選択した段落の書式を、前の段落に合わせます。Ctrl+Shift+Cキーで段落書式コピーできますが、前の段落に移動してコピー、戻って貼り付けが意外と面倒です。 マクロをボタン化すると、ショートカットより楽です。 Sub CopyPrePaa…

【Word VBA/マクロ】選択図形のアンカーロック/ロック解除(複数の図に対応)

サンプルコードでできること 選択した図のアンカーをロック(ロック解除)します。 Sub LockAnchorAllShpe() ’アンカーをロックします。 Dim sp As Shape For Each sp In Selection.ShapeRange Selection.ShapeRange.LockAnchor = True Next End Sub Sub Loc…

【Word VBA/マクロ】フォルダ内の全てのWordファイルにドキュメントプロパティの作成者名を設定

サンプルコードでできること フォルダ内のWordファイルのドキュメントプロパティの作成者名をセットします。 Sub setDocumentProperty_Author_Folder() Dim Path As String, strName As String Dim fs As Scripting.FileSystemObject Dim baseFolder As Scri…

【Word VBA/マクロ】指定フォルダ内のファイルからドキュメントプロパティのデータを抽出

サンプルコードでできること フォルダ内のWordファイルから、ドキュメントプロパティのタイトル・サブタイトル・作成者を新規文書に書き出します。 Sub getDocumentPropertyList_AuthorTitleSubject_Folder() Dim Path As String, pgInfo As String Dim fs A…

【Word VBA/マクロ】ドキュメントプロパティの全項目を取得

サンプルコードでできること ドキュメントプロパティの全ての項目を新規文書に書き出します。 Sub ドキュメントプロパティ取得() Dim docTo As Document, docProp As DocumentProperty Set docTo = Documents.Add '書き出し用のファイル On Error Resume Nex…

【Word VBA/マクロ】コメントユーザー名の変更

サンプルコードでできること コメントの特定の作成者の名前を変更します。 Sub コメントユーザー名変更() 'コメントのユーザー名を変更します。 Dim cmt As Comment, strInitial As String Dim MaeName As String, AtoName As String MaeName = "たなか" '変…

【Word VBA/マクロ】表内のテキスト左揃え

サンプルコードでできること 表内の両端揃えのテキストを左揃えに変更します。 Sub TblTextLeft() Dim cel As Cell, tbl As Table Dim para As Paragraph For Each tbl In ActiveDocument.Tables For Each cel In tbl.Range.Cells For Each para In cel.Rang…

【Word VBA/マクロ】インデント解除

サンプルコードでできること インデントを解除します。 Sub インデントなしに設定() With Selection.ParagraphFormat .CharacterUnitLeftIndent = 0 .CharacterUnitFirstLineIndent = 0 .LeftIndent = 0 .FirstLineIndent = 0 End With End Sub コードの説明…

【Word VBA/マクロ】インデントの単位変換(○字→mm)

サンプルコードでできること インデントの単位○字をmmかptに変更します。変更される単位はオプションの設定によります。次のような単位が不揃いの時に使用します。 Sub インデントの単位_mmやptに変換() Dim para As Paragraph For Each para In Selection.P…

【Word VBA/マクロ】選択セルの指定方法

選択した2つのセルを処理するとき、次のコードを使用します。 Selection.Cells 次のコードは、Selectionの後にRangeが入ります。Selection.Cellsと同じと思っていたら、2列目の1行目のセルも含まれるようです。 Selection.Range.Cells セル数を確認すると、2…

【Word VBA/マクロ】段落番号の後にタブを挿入

サンプルコードでできること 選択した段落の段落番号の後にタブを挿入します(処理対象は自動番号ではなく、テキストの番号)。スペースが挿入されている場合は削除して、代わりにタブを挿入します。下記の番号の種類を段落番号と判定しています。 (数字の…

【Word VBA/マクロ】検索の基本構文

検索構文をまとめています。 他の基本構文はこちら よく使用するコードはこちら Sub 検索基本構文_Range方式() Dim rng As Range '文書の先頭位置にrngをセット Set rng = ActiveDocument.Range(0, 0) With rng.Find .Text = "検索ワード" '検索条件に書式を…

【Word VBA/マクロ】アクティブページの図形のグループ化

サンプルコードでできること カーソルのあるページのオートシェイプ等の図をすべてグループ化します。 Sub アクティブページの図形を選択とグループ化() If Selection.Type = 8 Then MsgBox "図形が選択されています。図を選択しないで実行してください" Exi…

【Word VBA/マクロ】ウィンドウ左に表示

サンプルコードでできること ウインドウを画面の左側に表示します。 Sub ウインドウ左表示() Dim dWidth As Long, dHeight As Long With ActiveWindow .WindowState = wdWindowStateMaximize dWidth = .Width dHeight = .Height .WindowState = wdWindowStat…

【Word VBA/マクロ】文書内すべてのフォント設定

サンプルコードでできること 本文、ヘッダー・フッター、オートシェイプ、スマートアート等のフォントをArialに設定します。 Sub AllFontArial() Dim stFont As String stFont = "Arial" Dim b As Boolean b = FontChangeMsg(stFont) If b = False Then Exit…

【Word VBA/マクロ】表の罫線の太さ変更

サンプルコードできること 文書内すべての表の罫線0.5ptを0.75ptに変更します。 Sub 罫線の太さ変更() Dim bd As Border Dim tbl As Table Dim cel As Cell Application.ScreenUpdating = False For Each tbl In ActiveDocument.Tables For Each cel In tbl.…

【Word VBA/マクロ】表の配置を中央に設定/表内の表の配置を中央に設定

サンプルコードでできること 文書内の表すべての上下配置を中央に設定します。 コードの内容 For Each構文を用いて、文書内の表すべての上下配置を変更しています。 Sub 表の配置を中央揃えに設定() Dim tbl As Table For Each tbl In ActiveDocument.Tables…

【Word VBA/マクロ】セルの罫線の太さ確認

サンプルコードでできること セルの上下左右の罫線の太さを表示します。 カーソルを置いた単一セルを想定していたのですが、複数セルでも動作します。 ただ下図のように、どこのセルの線幅か分かりづらいです。 コードの説明 If Selection.Information(wdWit…

【Word VBA/マクロ】本文フォントの変更

コードの説明 ActiveDocument.Contentで本文領域を示すRangeオブジェクトを取得。 NameFarEastプロパティとNameプロパティで、日本語と英数字フォントを指定します。 Sub 本文フォント変更() With ActiveDocument.Content.Font .NameFarEast = "MS ゴシッ…

【Word VBA/マクロ】選択フォントの変更

サンプルコードでできること 選択したテキストをMSゴシック、Arialに変更します。 コードの説明 .NameFarEast = "MS ゴシック" .Name = "Arial" NameFarEastプロパティで日本語フォント、Nameで英数字フォントを指定します。 Sub 選択フォントの変更() Wit…

【Word VBA/マクロ】ヘッダー・フッターのフォント変更

サンプルコードでできること ヘッダー・フッターのフォントをMSゴシック+Arialに変更します。 コードの説明 Dim hdr As HeaderFooter, ftr As HeaderFooter ヘッダーとフッターの変数は、As 以下が同じです。 そのため「Dim hdr_ftr As HeaderFooter」のよう…

【Word VBA/マクロ】編集記号すべて表示のオン・オフ切り替え

サンプルコードでできること 編集記号すべて表示のオン・オフを切り替えます。 Sub 編集記号を全て表示の切り替え() With ActiveWindow.View .ShowAll = Not .ShowAll End With End Sub

【Word VBA/マクロ】隠し文字/ブックマーク/コメント/トリミングマーク/文字列枠 表示のオン・オフ切り替え

サンプルコードでできること 隠し文字表示のオン・オフを切り替えます。 Sub 隠し文字表示切り替え() With ActiveWindow.View .ShowHiddenText = Not .ShowHiddenText End With End Sub サンプルコードでできること ブックマーク表示のオン・オフを切り替え…

【Word VBA/マクロ】禁則処理のレベル表示/禁則処理のレベル変更

サンプルコードでできること 「標準」「高レベル」等、禁則文字の設定を表示します。 コードの説明 Select Case構文を用いて、禁則文字の設定を表示します。 Sub 禁則処理の設定表示() Select Case ActiveDocument.FarEastLineBreakLevel Case 0 MsgBox "標…

【Word VBA/マクロ】使用する単位の確認/mmとpointの切り替え

サンプルコードでできること mm、pointなど、使用する単位を表示します。 コードの説明 Select Case構文を用いて、使用する単位を判定します。 Sub 使用する単位の表示() Select Case Options.MeasurementUnit Case 0 MsgBox "インチ(in)" Case 1 MsgBox "…

【Word VBA/マクロ】基本構文(段落、図、表処理ほか)

よく使用する構文をまとめておきます。 よく使用するコードはこちら 検索の基本構文はこちら Sub 段落処理の基本構文() '文書内の段落を1つずつ処理します。 Dim para As Paragraph For Each para In ActiveDocument.Paragraphs '処理内容を書く Next End Su…

【Word VBA/マクロ】文書内全てのオートシェイプのフォント変更

サンプルコードでできること 文書内の全てのオートシェイプのフォントを変更します。 コードの説明 jFont = "MS ゴシック" eFont = "Arial" 変数に日本語フォントと英数字フォントを格納します。 ActiveWindow.View.Type = wdPrintView 図を表示するため印…

【Word VBA/マクロ】アクティブページの図のフォント変更

サンプルコードでできること 表示ページの図のフォントを変更します コードの説明 EfontName = "Arial" JfontName = "MS ゴシック" 英数字フォントと日本語フォントを変数に格納します。 For Each inShp In ActiveDocument.Bookmarks("\Page").Range.Inlin…

【Word VBA/マクロ】隠し文字解除

サンプルコードでできること 隠し文字を解除します。解除対象 ・本文 ・オートシェイプ ・脚注 ・ヘッダー・フッター ・ヘッダー・フッター内のオートシェイプ ・描画キャンパス コードの説明 コードが長くなるため、解除対象ごとにプロシージャを分けていま…