PR

Excel-VBAによるバーコード生成プログラム-No.2

これで楽に!?VBA活用
記事内に広告が含まれています。

こんにちは、Ryoです。
前回No.1でご紹介しましたバーコード生成プログラムの内、
「a.バーコード文字生成」について解説していきたいと思います。

ちなみにNo.1の記事はこちらになります。

スポンサーリンク

1.Excel画面

Excelシート画面内の「B5」「D5」「D8」セルに入力された情報を使い、
文字を連結して「B13:D13」に表示させます。

2.コード全体

コード全体は以下の通りです。

Sub Character_generation()

   Dim Bcode, CompType As String
   Dim Code As Variant
   Dim D As Long
   Dim rng As Range

   Range(Cells(13, 2), Cells(13, 4)).ClearContents
   Set rng = Range("B5:D5")
   
   If WorksheetFunction.CountA(rng) < 3 Then
      MsgBox "バーコード生成に必要な情報が入力されていません", vbCritical
      Exit Sub
    End If
   
   '//文字生成時に入力されている欄をクリアにする//
   Call Clear_bc
   code = Cells(5, 2)
  '//Typeの頭文字を抜き取る//
   CompType = Mid(Cells(5, 4), 1, 1)
   D = Format(Cells(8, 4), "yyyymd")
   
   '//各々読み込んだデータを連結//
   Bcode = CompType & code & D
   '//連結した文字列を指定セルに表示する//
   Cells(13, 2) = Bcode

End Sub

では、各コードについて解説致します。

3.コード解説

ここではバーコード化したい文字を読み込み連結する処理を行っています。(くどい?)
上述のコード全体から解説毎に切り分けてる都合上、行番号が不整合になってますが、
ご容赦くださいませ。

先ず最初に生成文字のクリアを実施。

 Range(Cells(13, 2), Cells(13, 4)).ClearContents

 

必要データ範囲をRangeとしてセットし、CounAにて入力有無を
カウントして空欄があれば警告表示します。

Set rng = Range("B5:D5")
   
   If WorksheetFunction.CountA(rng) < 3 Then
       MsgBox "バーコード生成に必要な情報が入力されていません", vbCritical
       Exit Sub
    End If

 

必要な情報が入力されていれば、既に生成されたバーコード画像有無等を確認し
あればクリアする処理するプログラムを呼び出して実行します。

 Call Clear_bc

 

今回のサンプルでは「Type」に入力された情報の頭文字を先頭とし、
以降に「code」情報と「日付」データを連結したものをバーコード文字としています。
「Number」は製品で言う型式のイメージでバーコード上部に情報として表示します。

「code」情報を対象セルから読み込みます。

  code = Cells(5, 2)

 

「Type」情報を対象セルから読み込み、Midコマンドにて先頭文字を抜き取ります。

   CompType = Mid(Cells(5, 4), 1, 1)

 

対象セルに入力された「日付」情報のフォーマットを指定し、数字の羅列に変更します。
(2017年7月12日 ⇒ 2017712)

   D = Format(Cells(8, 4), "yyyymd")

 

各データを連結してバーコード文字とし、対象セルに表示します。

  Bcode = CompType & code & D
   
   Cells(13, 2) = Bcode

 

ここまでの処理が「バーコード文字生成」ボタンに登録した内容ですので、
押すことで連結した文字が表示されます。




以上がバーコード化したい文字列の連結処理解説です。
次回のNo.3ではフォントへの置換と画像化処理を実施しますので、
宜しくお願いします。

Ryo

タイトルとURLをコピーしました