テーブルセルをマクロで埋める(Microsoft Word)
Wordでテーブルを操作しているときに、テーブルのさまざまなセルに設定値を入力することをお勧めします。たとえば、クリップボードに何かをコピーしてから、クリップボードの内容をテーブルの各セルに貼り付けることができます。次のマクロでうまくいきます:
Sub PasteToCells() Dim TargetRange As Range Dim oTargCell As Cell If Selection.Cells.Count = 0 Then 'Quit if no cells in selection MsgBox "No cells selected", vbCritical Exit Sub End If On Error Resume Next Set TargetRange = Selection.Range For Each oTargCell In Selection.Cells oTargCell.Range.Paste Next oTargCell TargetRange.Select End Sub
マクロは、選択にいくつかのセルが含まれていることを確認することから始まります。そうでない場合は、ユーザーに通知され、マクロが終了します。
次に、選択範囲が変数に格納され、マクロの最後で(再度)選択できるようになります。このコードがないと、マクロは元の選択の最初のセルで挿入ポイントを折りたたんだままにします。
マクロの本当の意味は、For … Nextループにあります。選択範囲内のセルをステップスルーし、そこにあるものをクリップボードの内容に置き換えます。最後に、元の選択が再度選択され、マクロが終了します。
マクロにもOnErrorステートメントがあることに気づいたかもしれません。このステートメントは基本的に、エラーを無視して次のステートメントに進むようにWordに指示します。トリガーされる可能性のあるエラーには、クリップボードに何も入力せずにマクロを実行したり、テーブルセル内にテーブルを貼り付けようとしたりすることが含まれます。 Wordはどちらのタスクも実行しませんが、選択範囲内のすべてのセルで完了するまで試行を続けます。
このマクロは、選択したセルにあるものをクリップボードの内容に置き換えることに注意してください。以前にセルにあったものはすべて失われます。代わりに、セルの既存の内容を乱すことなく、セルの先頭に情報を追加したい場合は、このわずかに変更されたマクロを使用できます。
Sub PasteToCellsStart() Dim TargetRange As Range Dim oTargCell As Cell Dim PasteRange As Range If Selection.Cells.Count = 0 Then 'Quit if no cells in selection MsgBox "No cells selected", vbCritical Exit Sub End If On Error Resume Next Set TargetRange = Selection.Range For Each oTargCell In Selection.Cells Set PasteRange = oTargCell.Range PasteRange.Collapse wdCollapseStart PasteRange.Paste Next oTargCell TargetRange.Select End Sub
最後の変更の1つは、セル内の内容の最後に貼り付けるマクロを作成することです。前述のマクロでwdCollapseStartをwdCollapseEndに置き換えることができると思うかもしれませんが、それはテーブル内では正しく機能しません。代わりに、上記のマクロのFor … Nextループを置き換える必要があります。次の例は、変更されたバージョンのマクロを示しています。
Sub PasteToCellsEnd() Dim TargetRange As Range Dim oTargCell As Cell Dim PasteRange As Range If Selection.Cells.Count = 0 Then 'Quit if no cells in selection MsgBox "No cells selected", vbCritical Exit Sub End If On Error Resume Next Set TargetRange = Selection.Range For Each oTargCell In Selection.Cells Set PasteRange = oTargCell.Range.Characters.Last PasteRange.Collapse wdCollapseStart PasteRange.Paste Next oTargCell TargetRange.Select End Sub
注:
このページ(または_WordTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。
_WordTips_は、費用効果の高いMicrosoftWordトレーニングのソースです。
(Microsoft Wordは、世界で最も人気のあるワードプロセッシングソフトウェアです。)このヒント(1508)は、Microsoft Word 97、2000、2002、および2003に適用されます。Wordのリボンインターフェイス(Word 2007)用のこのヒントのバージョンを見つけることができます。以降)ここ:
linkマクロでテーブルセルを埋める。