ExcelのVBAを使って、バーコード、下記のようなデータを入れたら、
画面上にバーコードを表示、と同時に印刷をして、バーコードリーダーで
読み取ることを可能にしたいと考えております。
データ: 「123456789012」 12桁の数値
セルに12桁の数値を入れて、適当なボタンを押すと、数値の入ったセルの下方に
バーコード表示させる、といったイメージです。
PCには、Microsoft バーコードコントロール 14.0が入っておりました。
これを選択すると、マウスが+になり、シート上でクリックすると
確かにバーコードが現れるのですが、不明なデータです。
どこをどのように変えれば、データが変わるのかも、よくわかりません。
結局、「Microsoft バーコードコントロール 14.0」の使い方がわかっていないのです。
宜しく、ご教示願います。
No.6ベストアンサー
- 回答日時:
Sub macro1()
Dim o As OLEObject
With Cells(2, 1)
Set o = ActiveSheet.OLEObjects.Add(ClassType:="BARCODE.BarCodeCtrl.1", _
Link:=False, DisplayAsIcon:=False, _
Left:=.Left, Top:=.Top, Width:=.Width, Height:=.Height)
o.LinkedCell = .Offset(-1).Address
End With
End Sub
ありがとうございます。
うまくバーコードの表示ができるようになりました。感謝です。
うまくいかなかった原因
1.ステップ動作は、ActiveXcontrolの挿入には適さないことを理解していなかった
2.Dim o As Object ではなく、Dim o As OLEObjectであるべき
3.入力する数値の桁数が足りなかった。
デフォルトのJan-13は、12桁、13桁でないといけない。
試しに入力していたのは、3,4桁の数値の為、バーコード表示がなされ
なかったもの
調査の結果、code-128であれば英数でも、任意長データでもバーコード表示ができることがわかりました。
Jan 13は、数値、かつ12桁、13桁のみのデータを対象にしていることを
全く理解しておりませんでした。 ということで、かなり、ご迷惑をお掛けしました。
でも、ご親切に対応していただき、感謝します。
No.5
- 回答日時:
#1-4です。
> 実行時エラー438
> オブジェクトはこのプロパティまたはメソッドをサポートしていませんでした。
先のエラーとは全く別の原因です。
最初にも書きましたが、参照設定してください。
VBE画面のメニュー[ツール]→[参照設定]
→[参照可能なライブラリ]のリストの中から
□ Microsoft Access BarCode Control 14.0
にチェックを入れて[OK]ボタンで確定してください。
続けて
Dim o As Object
を
Dim o As BARCODELib.BarCodeCtrl
に書換えて下さい。
環境によっては参照設定してオブジェクトを明示する必要があるようです。
> フォームコントロールボタンにマクロを登録して、実行させました。
何故'ボタンにマクロを登録'なのですか?
すみません、なんか#2で私が書いたことを外して、そしてまた外して、
問題点を相対的で曖昧な方向に持っていくような対話の仕方では、
何処にも定点を置くことが出来ず、問題点を絞るのに余計な労力が掛かります。
誤解が誤解を生むような流れに陥り、サポートするのも難しいです。
> (Gooの使い方)
すみません、私は動画を上げたことないので解りません。
以上です。それでは失礼します。
No.4
- 回答日時:
#1-3です。
#3お礼欄への返答です。> 単純にF8でステップ動作だけです。
ぃゃ、[F8]などのステップ実行を含めた=[デバッグ]モード=[中断モード]
では、コントロールの挿入は最後まで実行されません。そういう仕様です。
それは、バーコードコントロールに限らず、Excelのバージョンにもよらず、
ActiveXコントロールの挿入処理に共通する仕様である
という話をしています。
説明が解り難いようで申し訳ありませんが、
#2の内容を今一度確認してみて貰えませんか?
私が書いているのは、例えば[F8]ではなくて[F5]な訳で、
とにもかくにも、ありのままそのまますべてを実行してみてください。
何が何でもステップ実行でコントロールの挿入をしたいというお話なら、
それはそもそも無理としか答えようがありませんので。
> 何が悪さをしているのか、分からない状態です。
ここまでの補足情報を見る限りでは、何も"悪さ"しているようにはみえません。
もし、ステップ実行でではなく、普通にマクロを実行しているのに、
それでも同様の状況に陥るならば、
#1の記述の各行(各ブロック)について、
一次的にコメントブロックしてからテストするなどして、
どの行が"悪さ"しているのかを特定してみて下さい。
以上です。
コメントありがとうございます。
フォームコントロールボタンにマクロを登録して、実行させました。
エラーメッセージは異なりますが、
実行時エラー438
オブジェクトはこのプロパティまたはメソッドをサポートしていません
でした。
パワポにこの過程を克明にスクリーンショットを取ってまとめました。
どのようにして、送付すればよいのか、分かりません(Gooの使い方)
Gooでの返答の仕方も、併せて、ご教示願えるとありがたいです。
No.3
- 回答日時:
#1,2です。
#2に追加です。もしかして、と思ったのですが、
用語として[中断モード]と[デザインモード]が同じものと認識されているようでしたら、
まったく別物です。
そんなことわかっている、ということでしたら以下は読む必要ありません。
もしかして、ですので。
[デザインモード]はコントロールの各種設定を編集する際に、
コントロールのクリックイベントを抑止したり、一時的に表示を切り替えて
手作業でのデザイン変更を可能にする為のもので、
VBE画面では、、[Sub/ユーザーフォームの実行]ボタン[中断]ボタン[リセット]ボタンの右
にある、三角定規みたいなアイコン[デザインモード]ボタンでON/OFFを切り替えます。
今回課題のバーコードコントロールの場合は、
[デザインモード]中にデザイン通りのバーコードコントロールを表示させることが出来ないので、
繰り返し三角定規みたいなアイコンを凸凹させて
[デザインモード]のON/OFFを切り替える必要があります。
既に述べた通り[中断モード]では、コントロール追加処理がエラー終了になりますし、
私が#1で書いていた内容には[中断モード]に関する記述は一切ありません。
でも、[中断モード]では実行しないように、と一言書いておいてもよかったですね。
以上です。
誠意あるご回答ありがとうございます。
デザインモード、了解しております。
単純にF8でステップ動作だけです。
環境はWindows8.1+Excel2010です。
真新しいBookでやっても、挙動は同じでした。
Win7+Excel2010でも、同じ。
XP+Excel2003でも、同じ(14ではなしに9でしたが)。
何が悪さをしているのか、分からない状態です。
No.2
- 回答日時:
#1です、補足欄拝見しました。
普通にすべて一発で実行すれば問題なく動作する筈なのですが、、、。
> 実行後、エラー表示が出ます。「中断モードでは、入力できません」。
そのエラー表示の意味は、
VBEコードペインから、デバッグモードで(中断しながら)実行する場合
は、エラーになりますよ、という意味で、バーコードコントロールに限らず、
すべてのActiveXコントロール追加コマンドに共通の仕様です。
#1で提示したマクロについては、
VBE画面からの実行なら、[Macro1]にカーソルを当てて、
[F5]キー、または、[Sub/ユーザーフォームの実行]ボタン
を、一押し、
Excel画面からの実行なら、
[Alt + F8]キーに続けて、[Macro1]を選択し、[実行]ボタン
という手順で、
要するに、実行中は手出しをせず、素直に最後までマクロを実行させること、
です。
無論、途中にブレークポイントやStopステートメント等の記述も
挟むことは出来ません。
> 終了させて、デザインモードで見てみると、確かにCell(2,1)にはObjectが
> 生成されています。透明のまま。
> マウスで大きさを変えると、バーコードが描写されました。
#1で書いた私の記述は、
コメントブロックした行(これはお好みの設定)を除いて、
それ以外すべて最後まで実行しないと、
バーコードコントロールは正しく設定されません。
処理を飛ばすか、途中で終了すれば、'透明のまま'になることがあっても、
それは、そういうものだ、としか言えません。
とにもかくにも、一度、ありのままのマクロをただ普通に実行してみてください。
動作確認ですから、基本すべて、デフォルトのまま、ありのまま、
例えばブックもシートも新しく作成したまま、という定点を作って、
その次に、実際に使用する環境に適応するか、という順番で確認してください。
> 現状、先に進めることができない状態です。
以上の返答を踏まえても尚お困りのことがあれば、相談してください。
とはいえ、「何をするか」は、こちらから示唆できる話ではないですから、
まずバーコードコントロールの機能を理解して、
バーコードコントロールを使って何が出来るのか理解出来ないと、
バーコードコントロールを使って何をするか決めることも出来ないと思います。
そういう意味では、#1に書いたように、まず手を動かして各プロパティへの
理解を深めることが肝要です。
#1には殆どのプロパティの扱い方を示したつもりです。
コメントブロックをすべて外して実行してみるのも、
参考になるのではないでしょうか。
補足への返答、以上です。
No.1
- 回答日時:
こんにちは。
何年か前は仕事でも使っていた時もあったのですが、
もう忘れていますし、前とは違うようですし、、、
なので、特に自信があるわけでもないですが。
バーコードコントロールを挿入したら、
そのまま、デザインモード(三角定規アイコンが凹んでる状態で)のまま、
バーコードコントロールを右クリックして、
添付画像にある2種類のプロパティページで設定を指定します。
大抵のことは、日本語環境でインストールしただけでの既定の設定で、
(例えばJAN-12とか)そのままいけるのですが、
具体的なコードを指定してバーコードを表示させるには、
[プロパティ]→[LinkedCell] の項目に、
参照したい12桁の数値が入力されたセル への参照
(例えば、「A1」のように)を入力します。
> バーコードリーダーで読み取る
のでしたら、
[Microsoft バーコードコントロール 14.0 オブジェクト]→[プロパティ]
→表示されたダイアログの[サブ スタイル] の項目で
[3 - Pos Case Code] を選択しておくと
読み取りがし易いです。
その他にどんな設定があるのかについては、
各プロパティページと以下に示すVBAコードでの説明とを
照らし合わせて把握できるようにしてみて下さい。
通常は、バーコードコントロールを配置するセル
の大きさを予め、バーコードのサイズで用意して、
ぴったり収めるようにするものですから、下準備、というか、
入力、設定、印刷までの流れを踏まえて、
まずは、シートのザインを済ませておきましょう。
> セルに12桁の数値を入れて、適当なボタンを押すと、数値の入ったセルの下方に
> バーコード表示させる、といったイメージです。
下に示すマクロは、コントロールの追加と基本設定に関する、
プロペティ・メソッドを紹介するサンプルです。
これを理解して貰えれば、応用は可能ですが、
もしも、具体的なマクロが欲しいということでしたら、
ボタンを押した時に
どこのセルに対応したコントロールを挿入するか
どのセルに合わせて配置するか、
等の最低限の情報がないと何も書けません。
例えば、
A1: 品名
A2: コード
A3: バーコードコントロール
のように3行1列を1品目として、
A1:H24 のセル範囲に、縦横8*8=64品目をレイアウト。
ActiveXコントロールのCommandButton1をクリックした時のマクロで、
上記64点のコードに対応したバーコードコントロールを
各コードのセルのひとつ下のセルに挿入したい
その際、コードへのリンクを設定し、サブスタイルをPOSコードにしたい
みたいな具体的な話があれば、着手します。
でも、後々のメンテを考えたら、ご自分で覚えながら書くのがベターです。
まずは手を動かして、
各プロパティを自分で掌握して設定出来るように慣れてください。
失敗したら消去して、を繰り返したとしても、
何かのトラブルの原因になることはないですから、、、。
> バーコードが現れるのですが、不明なデータです。
デフォルトでダミーのデータに基づいたバーコードを表示していますが、
リンクを設定してから、デザインモードを終了したタイミングで、
リンク先のデータが反映されるようになります。
また、何だか適当に弄っているうちに、
[Microsoft バーコードコントロール 14.0 オブジェクト]→[プロパティ]
→[データの確認] の項目
または
[プロパティ]→[Validation] の項目
に 0 以外が設定されて、バーコードが表示されなくなる場合には、
一旦、設定を 0 に戻してデザインモードを終了すれば、
正しく表示されるのを確認してから、もう一度設定し直すようにすれば
解り易いと思います。
要は、デザインモードでは、実際の表示を確認できないので、
何度もデザインモードを行ったり来たりする必要があるってことで、
そのことさえ解ってしまえば(多少面倒ですが)
今「不明」と感じていることも明るくなるのではないでしょうか。
尚、VBAを書く時は、
VBEの[ツール]→[参照設定]に
Microsoft Access BarCode Control 14.0
を追加しておいて、
Dim objBarCtrl As BARCODELib.BarCodeCtrl
のように宣言しておいた方が能率的に開発できると思います。
以下、サンプルです。
Sub Macro1()
Dim o As Object
With Cells(2, 1) ' セルを指定して
' ' セルの位置・サイズに合わせてバーコードコントロールを追加する例
Set o = ActiveSheet.OLEObjects.Add(ClassType:="BARCODE.BarCodeCtrl.1", _
Link:=False, DisplayAsIcon:=False, _
Left:=.Left, Top:=.Top, Width:=.Width, Height:=.Height).Object
End With
o.Style = 2 ' バーコードの種類、日本の12桁+1は、2を指定。8桁なら1
o.SubStyle = 3 ' 標準が1、POSコードが3
o.LinkedCell = "A1" ' セルへのリンク 普通にセル参照文字列を指定
' o.BackColor = RGB(255, 255, 204) ' 背景色 普通にRGBを指定
' o.ForeColor = RGB(0, 0, 80) ' バーの色 普通にRGBを指定
' o.LineWeight = 3 ' 線の太さ 0 - 7 の8段階(標準は3)
' o.ShowData = 1 ' 数字を 1表示する|0表示しない
' o.Direction = 0 ' コントロールの向きを回転 0 - 3 時計廻りに90°ずつ
Debug.Print o.Value ' 12桁分だけの値を取得(13桁めは普通、計算で求める)
o.Verb ' よく解らないけど、これで描画等の動作を確定?
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
歩いた自慢大会
「めちゃくちゃ歩いたエピソード」を教えてください。 長時間でも長距離でも結構です。
-
フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
あなたが普段思っている「これまだ誰も言ってなかったけど共感されるだろうな」というあるあるを教えてください
-
映画のエンドロール観る派?観ない派?
映画が終わった後、すぐに席を立って帰る方もちらほら見かけます。皆さんはエンドロールの最後まで観ていきますか?
-
海外旅行から帰ってきたら、まず何を食べる?
帰国して1番食べたくなるもの、食べたくなるだろうなと思うもの、皆さんはありますか?
-
天使と悪魔選手権
悪魔がこんなささやきをしていたら、天使のあなたはなんと言って止めますか?
-
EXCELでバーコードを作成すると白くなってコードが見えません
その他(Microsoft Office)
-
バーコードコントロールが印刷時に反映されない
Excel(エクセル)
-
コマンドボタンがデザインモードになったまま
Excel(エクセル)
-
-
4
マクロでバーコードのリンクセルを指定したい
Excel(エクセル)
-
5
EXCELで作成したバーコードの更新方法について
Excel(エクセル)
-
6
EXECL バーコード生成でBarCodeCtrl のLinkedCellについて
Excel(エクセル)
-
7
バーコードが読み取れない原因について(エクセル)
その他(ビジネス・キャリア)
-
8
エクセル バーコード作成で他のシートを参照するには?
Excel(エクセル)
-
9
大量の図変換でVBAが遅い
その他(Microsoft Office)
-
10
Excelでバーコード作成
Excel(エクセル)
-
11
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
12
ユーザーフォームをホイールでスクロールする方法(Excel2000VBA)
Excel(エクセル)
-
13
エクセルで作成したバーコードが印刷するとずれる
Windows Vista・XP
-
14
作成したQRコードを貼り付けたい
Excel(エクセル)
-
15
Accessでバーコードコントロール14.0が表示
その他(Microsoft Office)
-
16
バーコードのサイズを小さくする方法
その他(ソフトウェア)
-
17
警告表示を非表示にしたい
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
読み取ったQRコード/バーコード...
-
EXCELでバーコードを作成すると...
-
バーコードってダブらない?
-
差し込み印刷のバーコードを小さく...
-
バーコードコントロールが印刷...
-
マクロでバーコードのリンクセ...
-
エクセル バーコード作成で他の...
-
Excelの Microsoft バーコード...
-
ANAの2次元バーコードがスマホ...
-
コンビニバイトで商品バーコー...
-
Accessでバーコードコントロー...
-
国内線航空券をJALのアプリにて...
-
バーコードで読み取った文字列...
-
スマホで、JANコードのバーコー...
-
レシートにバーコード
-
黒い無地のバーコードのみのカ...
-
JANコード(バーコード)を間違...
-
ボタン電池の場所が分からない...
-
EXCELで作成したバーコードの更...
-
振込請求書が破れてしまいました
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
読み取ったQRコード/バーコード...
-
EXCELでバーコードを作成すると...
-
バーコードってダブらない?
-
バーコードコントロールが印刷...
-
国内線航空券をJALのアプリにて...
-
エクセル バーコード作成で他の...
-
差し込み印刷のバーコードを小さく...
-
振込請求書が破れてしまいました
-
コンビニ決済の用紙で支払いの...
-
ANAの2次元バーコードがスマホ...
-
レシートにバーコード
-
Excelでバーコードリーダーで読...
-
EXCELで作成したバーコードの更...
-
Access2016Runtimeをインストー...
-
コンビニバイトで商品バーコー...
-
四次元バーコード
-
ガラケー携帯(カメラ付き)で...
-
マクロでバーコードのリンクセ...
-
バーコードリーダー だけで E...
-
Excelの Microsoft バーコード...
おすすめ情報
ありがとうございます。
スクリプトを試してみました。
With Cells(2, 1)
Set o = ActiveSheet.OLEObjects.Add(ClassType:="BARCODE.BarCodeCtrl.1", _
Link:=False, DisplayAsIcon:=False, _
Left:=.Left, Top:=.Top, Width:=.Width, Height:=.Height).Object
End With
実行後、エラー表示が出ます。「中断モードでは、入力できません」。
終了させて、デザインモードで見てみると、確かにCell(2,1)にはObjectが
生成されています。透明のまま。
マウスで大きさを変えると、バーコードが描写されました。
現状、先に進めることができない状態です。
サジェスチョンをお願い致します。