Excel
スプレッドシートのバーコードオブジェクト

 Standard 以上

Excelシートにバーコードを埋め込んで自動化する

Excel 365, 2024, 2021, 2019, 2016, 2013, 2010
ここでは、エクセル文書にバーコードを追加し、セルの内容とリンクさせる方法を簡単に説明します。

まずエクセルを起動し、文書を作成するか開く。

Developerタブが表示されるようにExcelが設定されていることを確認してください。これを行うには、ファイルタブをクリックしてExcelのオプションに進みます。これでバックステージ表示に切り替わります。次に、左側のタブグループでオプションをクリックします。ActiveBarcode: Barcode, Excel


1


Customize Ribbon で、メイン タブの Developer オプションを有効にし、オプション ウィンドウを閉じます。ActiveBarcode: Barcode, Excel


2


これでActiveBarcodeコントロール要素をドキュメントに埋め込むことができます。Developerタブを選択します。ActiveX Controls の範囲から Insert ボタンをクリックし、More Controls を選択します。ActiveBarcode: Barcode, Excel


3


画面にダイアログボックスが表示される:ActiveBarcode: Barcode, Excel


4


ActiveBarcodeを選択し、OKをクリックします。ドキュメントの中にバーコードが作成されます。標準のEAN-128バーコードになります。これはデフォルトのタイプです。ActiveBarcodeがサポートする任意のバーコードタイプに変更できます: QR Code, GS1/EAN-128, Data Matrix, GTIN/EAN-13, Code 39, Code 93, GS1-Data Matrix, Code 128, PDF417, DUN-14, EAN-8, EAN-14, EAN-18, ISBN, ITF-14, NVE, PZN8, SCC-14, SSCC-18 ...このバーコードを変更することができます。タイプ、テキスト、色などを変更できます。これを行うには、バーコードの内側を右クリックします。ポップアップメニューが開きます: ActiveBarcode: Barcode, Excel


5


ActiveBarcode Objectの後にPropertiesを選択します。ActiveBarcodeプロパティ・ダイアログが開きます。ここで好きなようにバーコードを変更できます。

別の方法として、Excelのプロパティダイアログを使うこともできます。そのためには、Controlsの範囲にあるPropertiesボタンをクリックします:ActiveBarcode: Barcode, Excel


6


セルとバーコードの間にリンクを作成する: 上記のようにExcelのプロパティダイアログを開く。バーコード・オブジェクトを一度クリックしてアクティブにします。バーコードオブジェクトのプロパティがプロパティダイアログに表示されます。LinkedCellというプロパティを探しなさい。このプロパティはセルとバーコードの間にリンクを作成します:ActiveBarcode: Barcode, Excel


7


このプロパティに、リンク用のセルの名前を入力します。以上!

複数のセルのデータをエンコードしたバーコードを作成したい場合は、まずこれらのセルを1つの補助セルに結合する必要がある。そして、この結合されたセルをバーコード・オブジェクトに接続する。

次の例では、セル B3 と B4 の内容がセル B6 で結合されている。セル B6 はバーコード・オブジェクトにリンクされている。ActiveBarcode: Barcode, Excel

VBAを使ったバーコードの使用と自動化 Excel

ExcelではVisualBasic for Applications(VBA)を使って様々なことを解決することができます。 ここでは、VBAでActiveBarcodeコントロールを埋め込み、使用し、削除する方法を紹介します:

ActiveBarcode コントロールをシートに埋め込む:
この例では、バーコード・コントロールをセルの真上に配置する。そうすると、バーコードがセルの中にあるように見える。

まず、細胞のサイズを読み取る:
CurrentCell = "C3"
MyHeight = Range(CurrentCell).Height
MyWidth = Range(CurrentCell).Width
MyTop = Range(CurrentCell).Top
MyLeft = Range(CurrentCell).Left
セルにはバーコードが入る最小のサイズが必要です。セルが小さすぎるとサイズエラーが表示されます。そこで、セルの高さを30ピクセルにリサイズします:
' Enlarge the cell height to 30 pixels
Range(CurrentCell).RowHeight = 30
次の関数は、セルの真上にバーコード・コントロールを作成します:
ActiveSheet.OLEObjects.Add(ClassType:="ACTIVEBARCODE.BarcodeCtrl.1", Link:=False, _
 DisplayAsIcon:=False, Width:=MyWidth , Height:=MyHeight, Top:=MyTop + 2,_
 Left:=MyLeft + 4).Select
バーコードオブジェクトとセルを直接リンクすることができます:
ActiveSheet.OLEObjects(MyBarcode).LinkedCell = "B7"
コントロールに簡単にアクセスするために、変数MyBarcodeにコントロールの名前を格納します:
MyBarcode = ActiveSheet.Shapes(ActiveSheet.Shapes.Count).Name
これで、バーコード・オブジェクトのプロパティメソッドを好きなように使うことができる:
' set properties
ActiveSheet.OLEObjects(MyBarcode).Object.Font.Size = 8
ActiveSheet.OLEObjects(MyBarcode).Object.Type = 14 ' Code 128
ActiveSheet.OLEObjects(MyBarcode).Object.Text = Range("C3")
コントロールが不要になった場合は、シートから削除することができます:
ActiveSheet.OLEObjects(MyBarcode).Delete
ヒント: マクロ内でWindowsが今後のイベント(KeepWindowsAliveと呼ばれることが多い)を処理する必要がある場合、次のVBA関数を使用してこれを強制できます:
DoEvents
これは例えば、コントロールがそれ自身を新しく描画しなければならない場合などに必要となる。