Office
 Computer >> コンピューター >  >> ソフトウェア >> Office

Word不要!Excelだけでラベルを直接印刷する方法【VBAコード付き完全ガイド】

通常、Microsoft Excelのデータからラベルを印刷するには、差し込み印刷機能を使ってMicrosoft Wordと連携させるのが一般的です。しかし、「すべての作業をExcel内だけで完結させたい」と考える方も少なくありません。実は、Wordを使わずにExcelのみでラベルを印刷する方法があります。この記事では、その具体的な手順を詳しく解説します。

WordなしでExcelからラベルを印刷する手順

Microsoft Wordを使用せずにExcelから直接ラベルを印刷するには、適切なラベルサイズに合わせてワークシートを整え、そのまま印刷するだけです。セルのサイズをラベルの寸法に合わせて変更し、VBA(Visual Basic for Applications)のコードを使って作業を自動化します。

まず、次のようなデータセットがあるものとします。

Word不要!Excelだけでラベルを直接印刷する方法【VBAコード付き完全ガイド】

このデータを1つずつラベル形式に変換し、Wordに頼ることなくExcel上で印刷できるようにしていきます。

ExcelでVBAを使用するには、まずリボンに「開発」タブを表示しておく必要があります。「開発」タブの表示方法がわからない場合は、事前に設定しておきましょう。準備ができたら、以下の手順に沿って進めてください。

ステップ1:データを新しいシートにコピーする

VBAコードが正しく動作するためには、データがセルA1から始まっている必要があります。そのため、ラベルにしたいデータセットをA1から配置し直す必要があります。今回の例のようにデータがB5などA1以外の場所から始まっている場合は、まず新しいシートにデータをコピーし、シートの先頭(A1)に貼り付けてください。以下のような状態になればOKです。

Word不要!Excelだけでラベルを直接印刷する方法【VBAコード付き完全ガイド】

これでVBAコードを実行する準備が整いました。

ステップ2:VBAコードを挿入する

次に、ラベルを希望のサイズや形状に調整するためのVBAコードを挿入します。手順は以下の通りです。

  • リボンの「開発」タブをクリックします。
  • 「コード」グループにある「Visual Basic」を選択します。

Word不要!Excelだけでラベルを直接印刷する方法【VBAコード付き完全ガイド】

  • VBAエディター(Visual Basic Editor)が開きます。「挿入」タブをクリックし、ドロップダウンメニューから「標準モジュール」を選択します。

Word不要!Excelだけでラベルを直接印刷する方法【VBAコード付き完全ガイド】

  • 開いたモジュールに、以下のコードを入力します。
'This Code Will Create Labels in Excel
Sub Createlabels()
 Application.Run "AskForColumn"
 
 Cells.Select
 Selection.RowHeight = 75.75
 Selection.ColumnWidth = 34.14
 With Selection
 .HorizontalAlignment = xlCenter
 .VerticalAlignment = xlBottom
 .WrapText = True
 .Orientation = 0
 .AddIndent = False
 .IndentLevel = 0
 .ShrinkToFit = False
 .ReadingOrder = xlContext
 .MergeCells = False
 End With
 With Selection
 .HorizontalAlignment = xlCenter
 .VerticalAlignment = xlCenter
 .WrapText = True
 .Orientation = 0
 .AddIndent = False
 .IndentLevel = 0
 .ShrinkToFit = False
 .ReadingOrder = xlContext
 .MergeCells = False
 End With
 
End Sub
Sub AskForColumn()
Dim refrg As Range
Dim vrb As Long
Dim dat As Long
Set refrg = Cells(Rows.Count, 1).End(xlUp)
dat = 1
On Error Resume Next
incolno = InputBox("Enter Number of Columns Desired")
For vrb = 1 To refrg.Row Step incolno
Cells(dat, "A").Resize(1, incolno).Value = _
Application.Transpose(Cells(vrb, "A").Resize(incolno, 1))
dat = dat + 1
Next
Range(Cells(dat, "A"), Cells(refrg.Row, "A")).ClearContents
End Sub

🔎 コードの解説

このVBAコードは、CreatelabelsプロシージャとAskForColumnプロシージャの2つの部分で構成されています。まずAskForColumnプロシージャの仕組みを説明し、その後にCreatelabelsプロシージャがどのように機能するかを見ていきましょう。

パート1:AskForColumnプロシージャ

理解しやすいよう、コードをいくつかのセクションに分けて説明します。

👉 セクション1: プロシージャ名AskForColumnを宣言している部分です。

👉 セクション2: refrg、vrb、datという3つの変数を宣言しています。

👉 セクション3: 変数refrgとdatに値を設定しています。

👉 セクション4: ワークシート上に入力ボックス(InputBox)を表示する部分です。

👉 セクション5: 入力ボックスに入力された列数に基づいてForループを実行します。

👉 セクション6: セルのサイズを変更(リサイズ)する処理を行います。

👉 セクション7: 最後に、余分なデータをクリアします。

Word不要!Excelだけでラベルを直接印刷する方法【VBAコード付き完全ガイド】

パート2:Createlabelsプロシージャ

こちらも同様に、セクションごとに分けて解説します。

👉 セクション1: プロシージャ名Createlabelsを宣言している部分です。

👉 セクション2: ここで前述のAskForColumnプロシージャを呼び出して実行します。

👉 セクション3: VBAのCellsプロパティを使って各セルの書式を設定しています。

Word不要!Excelだけでラベルを直接印刷する方法【VBAコード付き完全ガイド】

ステップ3:VBAコードを実行する

コードの入力が完了したら、VBAウィンドウを閉じます。続いて、以下の手順でコードを実行します。

  • リボンの「開発」タブをクリックします。
  • 「コード」グループから「マクロ」を選択します。

Word不要!Excelだけでラベルを直接印刷する方法【VBAコード付き完全ガイド】

  • マクロダイアログボックスが表示されたら、マクロ名の一覧からCreatelablesを選択します。

Word不要!Excelだけでラベルを直接印刷する方法【VBAコード付き完全ガイド】

  • 「実行」ボタンをクリックします。
  • 次に、希望する列数を入力します。ここでは例として「3」を入力し、「OK」をクリックします。

Word不要!Excelだけでラベルを直接印刷する方法【VBAコード付き完全ガイド】

すると、ワークシートが自動的に次のように変換されます。

Word不要!Excelだけでラベルを直接印刷する方法【VBAコード付き完全ガイド】

これで、Wordを使わずにExcelで印刷できるラベルが完成しました。

関連記事: ExcelからAveryラベルを印刷する方法

ステップ4:ユーザー設定の余白を指定する

ラベルを印刷する際は、印刷ページの余白を正しく設定することが重要です。余白の設定によってラベルの位置がずれたり、端のラベルが切れてしまったりしないよう、適切なサイズを選びましょう。ユーザー設定の余白を指定する手順は以下の通りです。

  • リボンの「ページレイアウト」タブをクリックします。
  • 図のように「ページ設定」ボタンを選択します。各グループの右下にある小さな矢印アイコンです。

Word不要!Excelだけでラベルを直接印刷する方法【VBAコード付き完全ガイド】

  • 「ページ設定」ダイアログボックスが表示されるので、「余白」タブを開きます。
  • 印刷ページに合わせて余白の数値を設定します。今回は以下のように設定しました。

Word不要!Excelだけでラベルを直接印刷する方法【VBAコード付き完全ガイド】

  • 設定が完了したら、「OK」をクリックします。

ステップ5:印刷時の拡大縮小オプションを選択する

ラベル印刷では、適切な拡大縮小(スケーリング)設定も重要です。たとえば、現状のまま印刷プレビューを確認すると、次のようにページからはみ出してしまいます。

Word不要!Excelだけでラベルを直接印刷する方法【VBAコード付き完全ガイド】

これでは目的を達成できません。そこで、シート全体を1ページに収める設定を行います。手順は以下の通りです。

  • キーボードのCtrl+Pを押して、印刷プレビュー画面を開きます。
  • 画面左下の「設定」欄の一番下に「拡大縮小して印刷」のオプションがあります。

Word不要!Excelだけでラベルを直接印刷する方法【VBAコード付き完全ガイド】

  • 拡大縮小のオプションをクリックし、ドロップダウンメニューから「シートを1ページに印刷」を選択します。

Word不要!Excelだけでラベルを直接印刷する方法【VBAコード付き完全ガイド】

これでラベルの拡大縮小設定は完了です。

関連記事: Excelで宛先ラベルを印刷する方法

ステップ6:ワークシートを印刷する

印刷プレビュー画面が表示されたままの状態で、画面左上にある「印刷」ボタンをクリックします。

Word不要!Excelだけでラベルを直接印刷する方法【VBAコード付き完全ガイド】

これをクリックするだけで、Wordの助けを借りることなく、Excel上ですべてのラベルを印刷できます。

Word不要!Excelだけでラベルを直接印刷する方法【VBAコード付き完全ガイド】

注意点

👉 VBAコードを実行する前に、すべてのラベルデータがセルA1から始まっていることを確認してください。

👉 印刷前に適切な余白と拡大縮小を設定しましょう。設定を怠ると、ラベルがページから切れてしまうことがあります。

👉 VBAによる操作は元に戻せません。実行前に必要なデータのバックアップを必ず取っておきましょう。

練習用ワークブックのダウンロード

印刷可能なラベルが含まれたファイルはこちらから入手できます。

まとめ

以上が、Microsoft Wordを使用したり差し込み印刷を行ったりすることなく、Excelだけでラベルを印刷するための手順です。このガイドを参考にすれば、WordなしでもExcelで簡単にラベル印刷ができるようになるはずです。本記事がお役に立てば幸いです。ご質問やご提案がありましたら、ぜひコメント欄でお知らせください。

このような便利なガイドをもっと見たい方は、ぜひ当サイトをチェックしてください。

関連記事

  • ExcelのデータをWordでラベル印刷する方法
  • ExcelからAvery 5160ラベルを印刷する方法
  • ExcelからAvery 8160ラベルを印刷する方法

<< 戻る:Excelでラベルを印刷 | 宛名ラベル | 差し込み印刷 | Excel学習

  1. Excelで温度計チャート(サーモメーターチャート)を作成する方法

    Excelの温度計チャートとは?温度計チャートは、その名の通り温度計のような形状を持つグラフです。Microsoft Excelでは、実際の値(実績)と目標値を1本のバーで視覚的に比較できるため、売上実績や目標達成率の分析に非常に役立つ表現方法です。Excelに温度計チャートは標準で用意されている?残念ながら、温度計チャートはExcelをはじめとするOfficeアプリケーションに、デフォルトのグラフ種類としては搭載されていません。そのため、既存のグラフをカスタマイズしてゼロから作り上げる必要があります。この記事では、Microsoft Excelで温度計チャートを作成する具体的な手順をわかりや

  2. Excelで文字列を文字数ごとに分割する8つの方法【関数・機能を徹底解説】

    Excelで文字列を指定した文字数ごとに分割したいと思っていませんか?この記事では、初心者でもすぐに使える8つの方法を、実際のデータ例を使いながらわかりやすく解説します。さっそく見ていきましょう。 サンプルファイルのダウンロード この記事で使用しているワークブックは、練習用として自由にダウンロードして活用できます。 文字列を文字数で分割する8つの方法 ここでは、ある大学の学生記録のデータテーブルを例に、文字数による分割や、特定の文字・改行による文字列の分割方法を説明します。 なお、本記事では Microsoft Excel 365 を使用していますが、他のバージョンでも同様の手順で操作でき