マイケルはかなり長いテーブルを持っています。テーブルの1つの列には、文字c、b、xなどのコーディング文字が含まれています。彼は、テーブルを印刷するときに、列に特定のコーディング文字がある行のみを印刷する方法があるかどうか疑問に思います。たとえば、コーディング列にコード「c」を含む行のみを印刷したい場合があります。

この問題に取り組むために使用できるアプローチがいくつかあります。

おそらく最も簡単な方法は、テーブルをExcelワークシートにコピーしてから、コーディング列の文字に基づいてデータをフィルタリングすることです。次に、フィルタリングされたワークシートを印刷して、必要なものだけを作成できます。

もちろん、WordではなくExcelで作業することが実用的または望ましくない場合もあります。たとえば、Excelがない場合や、Excelが提供できる以上の書式設定が必要な場合があります。その場合、コーディング列の内容に基づいてWordでテーブルを並べ替えることができます。次に、印刷するコードを含むテーブル行を選択し(テーブルを並べ替えたため、すべて連続している必要があります)、印刷することを選択します。ただし、何を印刷するかを指定する場合は、選択したものだけを印刷してください。

別の可能なアプローチは、差し込み印刷のデータソースとしてテーブルを使用することです。差し込み印刷を設計するときに使用する正確な手順については説明しませんが(他の_WordTips_で説明されています)、差し込み印刷にコーディング列に目的の文字が含まれる手順のみを含めるように指定できます。

最後に、この選択的な印刷を頻繁に行う必要がある場合は、タスクを処理するためのマクロを作成することをお勧めします。これを行う最も簡単な方法は、マクロで新しいドキュメントを作成し、目的の行をそのドキュメントにコピーすることです。

Sub CopyTableRows()

Dim SourceDoc As Document     Dim r As Row     Dim iCol As Integer     Dim sPCode As String     Dim sTemp As String

iCol = 3        ' Set the coding column     sPCode = "C"    ' Set code to select (must be uppercase)



ScreenRefresh = False

Set SourceDoc = ActiveDocument      ' Get active document's name     Documents.Add       ' Create a new document

' Find all rows that have correct code in the coding column     For Each r In SourceDoc.Tables(1).Rows         sTemp = UCase(r.Cells(iCol).Range)

sTemp = Left(sTemp, Len(sTemp) - 2)     ' Remove cell overhead                  If sTemp = sPCode Then             r.Range.Copy             Selection.PasteAndFormat wdFormatOriginalFormatting         End If     Next r

ScreenRefresh = True End Sub

マクロを使用するには、iColがコーディング列として使用される列に設定されていること、およびsPCodeに選択するコードが含まれていることを確認する必要があります。 (これはすべて大文字である必要があります。)マクロが完了すると、印刷する行のみを含むドキュメントが作成され、そのドキュメントを印刷できます。

注:

このページ(または_WordTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。

_WordTips_は、費用効果の高いMicrosoftWordトレーニングのソースです。

(Microsoft Wordは、世界で最も人気のあるワードプロセッシングソフトウェアです。)このヒント(3511)は、Microsoft Word 2007、2010、2013、および2016に適用されます。