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は、世界で最も人気のあるワードプロセッシングソフトウェアです。)このヒント(13157)は、Microsoft Word 2007、2010、2013、2016、2019、およびOffice 365のWordに適用されます。このヒントのバージョンは、ここにWordの古いメニューインターフェイス: