2016-11-24 3 views
0

Excelのワークシートでバーコードを生成するにはどうすればよいですか?バーコードテキストはセル内で指定されています。Excelワークシートでバーコードを生成する方法

(質量意図せず、さもなければMS Wordで行うことができるバーコードを生成する。)

+0

バーコードフォントをインストールするだけですか? – Comintern

+0

@ Cominternうん、良い点だけど、誰もが何かをインストールするように頼んでみたくない... – Rosetta

答えて

1

バーコードテキストが書かれている範囲を選択:次に、以下のスクリプトを実行

enter image description here

ました:

Sub INSERT_BARCODE() 
    Const BarcodeWidth As Integer = 156 
    Dim ws As Worksheet, WdApp 
    Set ws = ActiveSheet 
    Set WdApp = CreateObject("Word.Application") 
    With WdApp.Documents.Add 
     .PageSetup.RightMargin = .PageSetup.PageWidth - .PageSetup.LeftMargin - BarcodeWidth 
     .Fields.Add(Range:=.Range, Type:=-1, Text:="DISPLAYBARCODE " & CStr(Selection.Value) & " CODE39 \d \t", PreserveFormatting:=False).Copy 
    End With 
    ws.PasteSpecial Format:="Picture (Enhanced Metafile)", Link:=False, DisplayAsIcon:=False 
    WdApp.Quit SaveChanges:=False 
    Set WdApp = Nothing 
End Sub 

enter image description here

注:

BR〜

+0

私は 'エラー!そのコードを実行中に「ブックマークが定義されていません。 –

+0

word.applicationの部分に何か不足しているはずです。私はExcel/Word 2013でやっています。あなたは2010年ですか? – Rosetta

+0

はい私はWord 2010を利用しています。 –

1

これは、あなたが必要なもののためにspecced過大規模ですが、必要に応じて、あなたはそれのうちのビットを引くことができます。

Sub Call_Barcode_Service() 

Dim strResource As String 
Dim strSize As String 
Dim iHgt As Integer 
Dim iWth As Integer 
Dim iGap As Integer 
Dim PictureGrab As String 
Dim lngLastRow As Long 

strSize = UCase(InputBox("How Big?", "Small, Medium or Large?", "L")) 

Select Case strSize 

    Case Is = "S" 
     iWth = 150 
     iHgt = 45 
     iGap = 3 


    Case Is = "M" 
     iWth = 150 
     iHgt = 60 
     iGap = 4 

    Case Is = "L" 
     iWth = 240 
     iHgt = 75 
     iGap = 5 

    Case Else 
     iWth = 250 
     iHgt = 75 
     iGap = 5 

End Select 


Set sel = Selection.SpecialCells(xlTextValues) 

Set news = Worksheets.Add() 
news.Name = "Barcodes" 
Set op = news.Range("A1") 

For Each acc In sel 
strResource = acc.Value 

PictureGrab = "http://www.barcodesinc.com/generator/image.php?code=" & strResource & "&style=197&type=C128B&width=" & iWth & "&height=" & iHgt & "&xres=1&font=1" 

Set sh = ActiveSheet.Shapes.AddShape(msoShapeRectangle, op.Left, op.Top, iWth, iHgt) 

With sh 

.Name = strResource 
.Line.Visible = False 
.Fill.UserPicture PictureGrab 

End With 

Set op = op.Offset(iGap + 1, 0).Range("A1") 

Next 

Range("G1").Select 

End Sub 
+1

良いもの。私はこれも好きで、すべてのオフィス版で働いています。写真が静止していない限り、インターネット接続が必要です。 – Rosetta

+0

はい、それはインターネットアクセスが必要な1つの警告です。私はこのコードを使用して**数百万のデータ行を実行し、同様のビット「VBA」を使ってバーコードとQR間のデータ密度の違いを示すQRコードを生成しました。私が言っているように、1つのセルのための過剰スペック! :o) –

関連する問題