マクロでバーコードのリンクセルを指定する方法

このQ&Aのポイント
  • Microsoft BarCode Control 9.0 を使ってエクセルの表にバーコードを入れます。そのバーコードの Linkedcell をマクロを使って一括で設定したい。
  • セルA2からセルA101にバーコードがあり、リンクさせたいセル(JANコードが入っています)はセルB2からB101とします。
  • 試しに「????」の部分に何か入れてみましたが、うまくいきませんでした。困っています。
回答を見る
  • ベストアンサー

マクロでバーコードのリンクセルを指定したい

いつもお世話になっています。 Microsoft BarCode Control 9.0 を使ってエクセルの表にバーコードを入れます。そのバーコードの Linkedcell をマクロを使って一括で設定したいのですが、やり方が分かりません。 セルA2からセルA101にバーコードがあるとします。(バーコードはA2から順に BarCodeCtrl1 から BarCodeCtrl100 まで名前がついています。) リンクさせたいセル(JANコードが入っています)はセルB2からB101として for i =1 to 100 ActiveSheet.Shapes("BarCodeCtrl" & i).???? = Cells(i + 1, 2) next という構文の「????」の部分に何か入れればできるのではと思い色々試してみましたが、結局分かりませんでした。 自動記録でも何も分からないため困っています。 どうかよろしくお願いします。 環境 windows98 excel2000

質問者が選んだベストアンサー

  • ベストアンサー
  • bonaron
  • ベストアンサー率64% (482/745)
回答No.1

手作業でも終わっているころだと思いますが。 For i = 1 To 100   ActiveSheet.OLEObjects("BarCodeCtrl" & i).LinkedCell = "B" & (i + 1) Next

fred2000
質問者

お礼

ありがとうございました。 これからも使うコードですので大変感謝しています。 ちなみに手作業ではやっていませんでした。 また質問した際にはよろしくお願いします。

関連するQ&A

  • エクセルマクロを用いたバーコード出力

    いつもお世話になっています。 エクセルマクロを用いて連番のバーコードを出力しようと考えたのですが、なかなか難しく質問に来ました。 A1~A10にバーコード用の数字(チェックデジット込みの13桁)を準備しました。 これに対応させたバーコードデータを10個作ろうとしたのですが、linkedCellの設定も上手くできませんし、デザインモードの切り替えをしないと表示もできないようで、困っています。 マクロの記録を使っても上手くいかず・・・ アドバイスの程お願いいたします。 できればサンプルマクロをご提示いただくと幸いです。

  • エクセルのマクロの質問です。

    エクセルのマクロの質問です。 こんにちわ。エクセルのマクロを始めて間もないものです。 下記ようなマクロを組みましたが「Windows("B.xls").Activate」(※の部分)でとまってしまいます。 なぜかもわからず困っています。 Workbooks.Open Filename:="B.xls" For i = 1 To 1000 Step 1 Range(Cells(i, 1), Cells(i, 5)).Select Selection.Copy Windows("A.xls").Activate Cells(Cells(Rows.Count, 1).End(xlUp).Row + 1, 1).Select ActiveSheet.Paste ※ Windows("B.xls").Activate Next i 一応、動作としては Bのマクロを開く→ループ始点(1000回繰り返す) 一回目⇒A1~B5をコピー→Aのエクセルを開く→A列のセル1行目に貼り付ける→Bのエクセルを開く 二回目⇒A2~B5をコピー→Aのエクセルを開く→A列のセル2行目に貼り付ける→Bのエクセルを開く . . . ループ終点 こんな感じで作成しましたが、どうしても上手く動かないで困っています。 無駄な動作が多いかもしれませんが、ぜひアドバイスをお願いします。 また、もっと簡単な動作ができるのであればそちらもお願いします。

  • Excelでバーコードコントロールを使用したい

    Excel2013でバーコードコントロール15.0を使用し セル(A4)に商品名15桁+数量4桁+シリアルNo.8桁(合計27文字)を Code128でバーコードにする必要があります。 例)A1【商品名】ABC01 A2【数量】1個 A3【シリアルNo.】00000001 B1【商品文字数】=LENB(A1) B2【数量桁数】=LENB(A2) B3【シリアル桁数】=LENB(A3) A4【バーコード内容】=A1&REPT(" ",15-B1)&REPT("0",4-B2)&A2&REPT("0",4-B3)&A3  希望の表示はA4のセルで   ABC01 000100000001 上記の空白部分、判り難いとは存じますが、10文字の空白です。 値としては表現できるようですが、バーコードコントロールの プロパティでLinkedCellをA4にしてもバーコードが生成されません。 そもそもの使い方が間違っているのでしょうか? スタートコード、チェックデジット、ストップコード等 http://www.kishugiken.co.jp/reading/barcode/barcode4.html ここで書いている事が、私には理解できずにいます。 ご教授下さいます様、お願い申し上げます。

  • このマクロを少し修正したい

    先日、こちらのサイトで下記のマクロを作っていただきました。 エクセルの置換えシートを使って、別のエクセルシートを一括置換えするマクロです。 ただ、置換えしたいシートのセルが結合していたり、文字の前に空欄が入っていると変換されません。 上記も認識しての置換えは、下記のマクロを修正して可能でしょうか? 修正したマクロを教えていただけると助かります。  With ThisWorkbook   If ActiveSheet Is .Worksheets(1) Then Exit Sub   For i = 1 To .Worksheets(1).Range("A65536").End(xlUp).Row    ActiveSheet.Cells.Replace _      What:=.Worksheets(1).Range("A" & i).Value, _      Replacement:=.Worksheets(1).Range("B" & i).Value, _      LookAt:=xlPart, SearchOrder:=xlByColumns   Next  End With End Sub

  • EXCEL VBA 連続のバーコード印刷

    EXCEL2010にて同シートにて下記コードでバーコードを1シート4件 表示してプリントアウトの繰り返しを行おうと思いますが ステップイン[F8]で1行づつ送ると思うようにバーコードが 印字されますがボタンクリックの自動処理を行いますと バーコード対象の品番は処理どおり印字されますが バーコードは1枚目と同様の項目で印字されてしまいます。 調べる限りバーコードVisible = True,Falseで表示されるなどありましたので 組み込みましたが変わりませんでした。 どのように変更すればよいのかご教示の程よろしくお願いいたします。 Private Sub CommandButton2_Click() Dim 最終行 As Long With ActiveSheet Call クリヤ処理 入力 = 21 最終行 = .Cells(Rows.Count, 34).End(xlUp).Row 次: For 入力 = 入力 To 最終行 If .Cells(7, 1).Value = "" Then '左上 .Cells(7, 1).Value = .Cells(入力, 34).Value 'バーコード用品番入力セル .Cells(3, 34).Value = Left(.Cells(入力, 34).Value, 6) & Mid(.Cells(入力, 34).Value, 8, 3) ActiveSheet.BarCodeCtrl5.LinkedCell = "AH" & 3 ActiveSheet.BarCodeCtrl5.Visible = True ElseIf .Cells(7, 17).Value = "" Then '右上 .Cells(7, 17).Value = .Cells(入力, 34).Value 'バーコード用品番入力セル .Cells(3, 35).Value = Left(.Cells(入力, 34).Value, 6) & Mid(.Cells(入力, 34).Value, 8, 3) .BarCodeCtrl2.LinkedCell = "AI" & 3 .BarCodeCtrl2.Visible = True ElseIf .Cells(44, 1).Value = "" Then '左下 .Cells(44, 1).Value = .Cells(入力, 34).Value 'バーコード用品番入力セル .Cells(5, 34).Value = Left(.Cells(入力, 34).Value, 6) & Mid(.Cells(入力, 34).Value, 8, 3) .BarCodeCtrl3.LinkedCell = "AH" & 5 .BarCodeCtrl3.Visible = True ElseIf .Cells(44, 17).Value = "" Then '右下 .Cells(44, 17).Value = .Cells(入力, 34).Value 'バーコード用品番入力セル .Cells(5, 35).Value = Left(.Cells(入力, 34).Value, 6) & Mid(.Cells(入力, 34).Value, 8, 3) .BarCodeCtrl4.LinkedCell = "AI" & 5 .BarCodeCtrl4.Visible = True 'プリントアウト ActiveWindow.SelectedSheets.PrintOut Copies:=1 .BarCodeCtrl5.Visible = False .BarCodeCtrl2.Visible = False .BarCodeCtrl3.Visible = False .BarCodeCtrl4.Visible = False Call クリヤ処理 入力 = 入力 + 1 GoTo 次 End If Next 入力 End With End Sub Private Sub クリヤ処理() With ActiveSheet '左上 .Cells(7, 1).Value = "" .Cells(3, 34).Value = "" 'バーコード品番 '右上 .Cells(7, 17).Value = "" .Cells(3, 35).Value = "" 'バーコード品番 '左下 .Cells(44, 1).Value = "" .Cells(5, 34).Value = "" 'バーコード品番 '右下 .Cells(44, 17).Value = "" .Cells(5, 35).Value = "" 'バーコード品番 End With End Sub

  • VBA ボタンをセルの右側に合わせたい

    ActiveSheet.Shapes("Button 1").Left = Cells(1, 2).Left とすると、ボタンの左側がセルB2の左側に合わせていどうしますよね。 これを、ボタンの右側がセルB2右側に合わせて移動するようにしたいのですが上手くいきません。 ActiveSheet.Shapes("Button 1").Right = Cells(1, 2).Right 試しにこのようにしてみましたがエラーになりました・・・。 Excel2003です。 お分かりになる方、よろしくお願いいたします。

  • Excel マクロで使用済みのボタンを消したい。

    マクロで使用済みのボタンを削除したいと考えています。 毎回ボタンの数が同じ場合は作れたのですが、 ボタンの数が場合によって異なります。 具体的にはD5セルより下にあるボタンを削除したいと考えています。 ボタンを作る時のマクロは Set ws1 = Workbooks("ブックA").Worksheets("Sheet1") Set ws2 = Workbooks("ブックB").Worksheets("Sheet1") i = 2 j = 5 Do Until ws1.Range("B" & i) = "" ws2.Range("D" & j).Value = ws1.Range("B" & i).Value With ActiveSheet.Buttons.Add(Cells(j, 4).Left + 1, Cells(j, 4).Top + 1, _ Cells(j, 4).Width - 1, Cells(j, 4).Height - 1) .Name = "いの" & i - 1 .OnAction = "Select" .Characters.Text = Range("D" & j) End With i = i + 1 j = j + 1 Loop といった感じで、ブックAのB列のデータ数だけ、 ブックBのD5から下に値をコピーし、 その上にセルサイズに合わせてボタンを作り、 Nameを上から順に「いの1」「いの2」・・・、表示はボタンの裏に隠れている値をつけ、 ボタンにマクロ「あいうえお」を登録します。 次にボタンをクリックしたときに、 上の工程で作られたボタンを削除したいと考えています。 a = 1 Do Until ActiveSheet.Shapes("Order" & a) = "" ActiveSheet.Shapes("Order" & a).Delete a = a + 1 Loop b = 5 Do Until Range("D" & b) = "" Range("D" & b).ClearContents b = b + 1 Loop Call あいうえお End Sub ボタン裏のセルは削除できたのですが、 肝心のボタンの削除は出来ませんでした。 どなたかご教授していただければ大変助かります。 宜しくお願いします。

  • エクセルで画像の挿入マクロについて

    エクセルのB列にJANコードが入力してあり、 (1)セル内容コピー  (2)C列にそのJANコード.emfのファイル名画像を挿入 (3)次の行に移る この作業をマクロ記録してみたところ内容が下記の様になりました。 Sub JAN() ' ' JAN Macro ' ' Keyboard Shortcut: Ctrl+Shift+Q ' Selection.Copy ActiveCell.Offset(0, 1).Range("A1").Select ActiveSheet.Pictures.Insert( _ "C:\Users\user\Documents\JAN_バーコード\1234567890123.emf").Select ActiveCell.Offset(1, -1).Range("A1").Select End Sub 挿入する画像のファイル名が最初のものに固定されてしまっているのですが、 これを次のセル内容に自動で変える為にはどうすればよいでしょうか。

  • Excelのバーコードコントロール

    Excel2010のバーコードコントロールでJANコード(13桁)を作成しています。 一番最初に印刷したバーコードをスキャナで読み取った結果、正しく読み取りが出来ました。 しかし、バーコードのプロパティで「LinkedCell」で指定したセルのバーコードの値を変えると変えた値でバーコードは印刷されるものの、スキャナでは読み取りが出来ませんでした。(反応なし) 一番最初の値に戻して再度印刷したら、読み取りが出来ました。 同じような現象を経験された方がいらっしゃいましたら解決方法を教えて頂けますでしょうか?

  • VBAマクロ_セル範囲を行列番号で指定

    エクセルマクロで、ある範囲を指定してコピーし、別の場所を指定してそこへ貼付たいのです。 個別に指定するなら、例えばこんな感じで   Range("B18:C32").Select   Selection.Copy   Range("B67").Select   ActiveSheet.Paste B18:C32 のように、セル番号で指定すれば出来ます。 このコピー範囲を、行列番号で指定したいのです。 「セル(i,j)~(k,l)までの範囲」というふうに、4つの変数で表現したいのです。 cells(i,j)を使えばできそうと思ったのですが、どうもうまくいきません。 良いやり方があれば教えてください。

専門家に質問してみよう