マンガでよめる痔のこと・薬のこと

ExcelのVBAを使って、バーコード、下記のようなデータを入れたら、
画面上にバーコードを表示、と同時に印刷をして、バーコードリーダーで
読み取ることを可能にしたいと考えております。

データ: 「123456789012」 12桁の数値

セルに12桁の数値を入れて、適当なボタンを押すと、数値の入ったセルの下方に
バーコード表示させる、といったイメージです。

PCには、Microsoft バーコードコントロール 14.0が入っておりました。
これを選択すると、マウスが+になり、シート上でクリックすると
確かにバーコードが現れるのですが、不明なデータです。
どこをどのように変えれば、データが変わるのかも、よくわかりません。

結局、「Microsoft バーコードコントロール 14.0」の使い方がわかっていないのです。
宜しく、ご教示願います。

質問者からの補足コメント

  • ありがとうございます。
    スクリプトを試してみました。
    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が
    生成されています。透明のまま。
    マウスで大きさを変えると、バーコードが描写されました。

    現状、先に進めることができない状態です。
    サジェスチョンをお願い致します。

    No.1の回答に寄せられた補足コメントです。 補足日時:2015/02/21 18:27

このQ&Aに関連する最新のQ&A

A 回答 (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
    • good
    • 5
この回答へのお礼

ありがとうございます。
うまくバーコードの表示ができるようになりました。感謝です。
うまくいかなかった原因
1.ステップ動作は、ActiveXcontrolの挿入には適さないことを理解していなかった
2.Dim o As Object ではなく、Dim o As OLEObjectであるべき
3.入力する数値の桁数が足りなかった。
  デフォルトのJan-13は、12桁、13桁でないといけない。
  試しに入力していたのは、3,4桁の数値の為、バーコード表示がなされ
  なかったもの
調査の結果、code-128であれば英数でも、任意長データでもバーコード表示ができることがわかりました。
Jan 13は、数値、かつ12桁、13桁のみのデータを対象にしていることを
全く理解しておりませんでした。 ということで、かなり、ご迷惑をお掛けしました。
でも、ご親切に対応していただき、感謝します。

お礼日時:2015/02/24 23:19

#1-4です。



> 実行時エラー438
> オブジェクトはこのプロパティまたはメソッドをサポートしていませんでした。

先のエラーとは全く別の原因です。
最初にも書きましたが、参照設定してください。
 VBE画面のメニュー[ツール]→[参照設定]
 →[参照可能なライブラリ]のリストの中から
 □ Microsoft Access BarCode Control 14.0
 にチェックを入れて[OK]ボタンで確定してください。
続けて
Dim o As Object

Dim o As BARCODELib.BarCodeCtrl
に書換えて下さい。
環境によっては参照設定してオブジェクトを明示する必要があるようです。

> フォームコントロールボタンにマクロを登録して、実行させました。
何故'ボタンにマクロを登録'なのですか?
すみません、なんか#2で私が書いたことを外して、そしてまた外して、
問題点を相対的で曖昧な方向に持っていくような対話の仕方では、
何処にも定点を置くことが出来ず、問題点を絞るのに余計な労力が掛かります。
誤解が誤解を生むような流れに陥り、サポートするのも難しいです。

> (Gooの使い方)
すみません、私は動画を上げたことないので解りません。

以上です。それでは失礼します。
    • good
    • 1

#1-3です。

#3お礼欄への返答です。

> 単純にF8でステップ動作だけです。
ぃゃ、[F8]などのステップ実行を含めた=[デバッグ]モード=[中断モード]
では、コントロールの挿入は最後まで実行されません。そういう仕様です。
それは、バーコードコントロールに限らず、Excelのバージョンにもよらず、
ActiveXコントロールの挿入処理に共通する仕様である
という話をしています。
説明が解り難いようで申し訳ありませんが、
#2の内容を今一度確認してみて貰えませんか?
私が書いているのは、例えば[F8]ではなくて[F5]な訳で、
とにもかくにも、ありのままそのまますべてを実行してみてください。
何が何でもステップ実行でコントロールの挿入をしたいというお話なら、
それはそもそも無理としか答えようがありませんので。

> 何が悪さをしているのか、分からない状態です。
ここまでの補足情報を見る限りでは、何も"悪さ"しているようにはみえません。

もし、ステップ実行でではなく、普通にマクロを実行しているのに、
それでも同様の状況に陥るならば、
#1の記述の各行(各ブロック)について、
一次的にコメントブロックしてからテストするなどして、
どの行が"悪さ"しているのかを特定してみて下さい。

以上です。
    • good
    • 0
この回答へのお礼

コメントありがとうございます。
フォームコントロールボタンにマクロを登録して、実行させました。
エラーメッセージは異なりますが、
実行時エラー438
オブジェクトはこのプロパティまたはメソッドをサポートしていません
でした。

パワポにこの過程を克明にスクリーンショットを取ってまとめました。
どのようにして、送付すればよいのか、分かりません(Gooの使い方)

Gooでの返答の仕方も、併せて、ご教示願えるとありがたいです。

お礼日時:2015/02/22 22:53

#1,2です。

#2に追加です。

もしかして、と思ったのですが、
用語として[中断モード]と[デザインモード]が同じものと認識されているようでしたら、
まったく別物です。
そんなことわかっている、ということでしたら以下は読む必要ありません。
もしかして、ですので。

[デザインモード]はコントロールの各種設定を編集する際に、
コントロールのクリックイベントを抑止したり、一時的に表示を切り替えて
手作業でのデザイン変更を可能にする為のもので、
VBE画面では、、[Sub/ユーザーフォームの実行]ボタン[中断]ボタン[リセット]ボタンの右
にある、三角定規みたいなアイコン[デザインモード]ボタンでON/OFFを切り替えます。
今回課題のバーコードコントロールの場合は、
[デザインモード]中にデザイン通りのバーコードコントロールを表示させることが出来ないので、
繰り返し三角定規みたいなアイコンを凸凹させて
[デザインモード]のON/OFFを切り替える必要があります。
既に述べた通り[中断モード]では、コントロール追加処理がエラー終了になりますし、
私が#1で書いていた内容には[中断モード]に関する記述は一切ありません。
でも、[中断モード]では実行しないように、と一言書いておいてもよかったですね。
以上です。
    • good
    • 0
この回答へのお礼

誠意あるご回答ありがとうございます。
デザインモード、了解しております。
単純にF8でステップ動作だけです。
環境はWindows8.1+Excel2010です。
真新しいBookでやっても、挙動は同じでした。
Win7+Excel2010でも、同じ。
XP+Excel2003でも、同じ(14ではなしに9でしたが)。
何が悪さをしているのか、分からない状態です。

お礼日時:2015/02/22 18:08

#1です、補足欄拝見しました。



普通にすべて一発で実行すれば問題なく動作する筈なのですが、、、。

> 実行後、エラー表示が出ます。「中断モードでは、入力できません」。
そのエラー表示の意味は、
VBEコードペインから、デバッグモードで(中断しながら)実行する場合
は、エラーになりますよ、という意味で、バーコードコントロールに限らず、
すべてのActiveXコントロール追加コマンドに共通の仕様です。

#1で提示したマクロについては、
VBE画面からの実行なら、[Macro1]にカーソルを当てて、
  [F5]キー、または、[Sub/ユーザーフォームの実行]ボタン
  を、一押し、
Excel画面からの実行なら、
  [Alt + F8]キーに続けて、[Macro1]を選択し、[実行]ボタン
  という手順で、
要するに、実行中は手出しをせず、素直に最後までマクロを実行させること、
です。
無論、途中にブレークポイントやStopステートメント等の記述も
挟むことは出来ません。

> 終了させて、デザインモードで見てみると、確かにCell(2,1)にはObjectが
> 生成されています。透明のまま。
> マウスで大きさを変えると、バーコードが描写されました。
#1で書いた私の記述は、
コメントブロックした行(これはお好みの設定)を除いて、
それ以外すべて最後まで実行しないと、
バーコードコントロールは正しく設定されません。
処理を飛ばすか、途中で終了すれば、'透明のまま'になることがあっても、
それは、そういうものだ、としか言えません。

とにもかくにも、一度、ありのままのマクロをただ普通に実行してみてください。
動作確認ですから、基本すべて、デフォルトのまま、ありのまま、
例えばブックもシートも新しく作成したまま、という定点を作って、
その次に、実際に使用する環境に適応するか、という順番で確認してください。

> 現状、先に進めることができない状態です。
以上の返答を踏まえても尚お困りのことがあれば、相談してください。
とはいえ、「何をするか」は、こちらから示唆できる話ではないですから、
まずバーコードコントロールの機能を理解して、
バーコードコントロールを使って何が出来るのか理解出来ないと、
バーコードコントロールを使って何をするか決めることも出来ないと思います。
そういう意味では、#1に書いたように、まず手を動かして各プロパティへの
理解を深めることが肝要です。
#1には殆どのプロパティの扱い方を示したつもりです。
コメントブロックをすべて外して実行してみるのも、
参考になるのではないでしょうか。

補足への返答、以上です。
    • good
    • 0

こんにちは。



何年か前は仕事でも使っていた時もあったのですが、
もう忘れていますし、前とは違うようですし、、、
なので、特に自信があるわけでもないですが。

バーコードコントロールを挿入したら、
そのまま、デザインモード(三角定規アイコンが凹んでる状態で)のまま、
バーコードコントロールを右クリックして、
添付画像にある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
「Excelの Microsoft バーコ」の回答画像1
この回答への補足あり
    • good
    • 1

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qバーコードコントロール

ACCESS2007でバーコードコントロールを使用したいのですが、
ActiveXコントロールには「バーコードコントロール」が表示されません。
これはなぜなのでしょうか?

参照先のエラーという画面がACCESSを起動したときに出るのでそれが何か関係しているとは
思うのですが。。。
調べてみらのですが分かりませんでした。どなたかご教授お願いします。

Aベストアンサー

まず、念のためですが、ActiveXの一覧では、バーコードコントロールは
「Microsoft バーコード コントロール 9.0」として表示されますので、
確認してみてください。
(カレンダーコントロールだと、先頭に「Microsoft」が入らないのですが(汗))
http://office.microsoft.com/ja-jp/access-help/HA010201925.aspx


> 参照先のエラーという画面がACCESSを起動したときに出る

Access2003以前のバージョンで作成したMDBファイルを、Access2007で
開こうとした、ということでよろしいでしょうか。

原因としては、
 a)Access2007にバーコードコントロールがインストールされていない
 b)(インストールはされているが)参照設定が正しくなっていない
  (参照先が、以前のバージョンのもののままになっている)
の可能性が考えられるかと思います。
(ActiveXの一覧に表示されないなら「a」が、表示されるなら「b」が、
 それぞれ推測されます)

対処法としては、以下のようになります。

【a・インストールの場合】
1)Windowsのコントロールパネルから、『プログラムの追加と削除』を起動
2)「Microsoft Office ○○ 2007」を選択し、『変更』ボタンをクリック
3)新たに開いた画面で、「機能の追加/削除(A)」を選択し、『次へ』ボタン
 をクリック
4)『インストールオプション』タブのツリーで、「Microsoft Office Access」の
 『+』ボタンをクリックして、ツリーを展開
5)『バーコード コントロール』の項目があるので、『▼』ボタンをクリックして
 「マイ コンピュータから実行(R)」を選択し、右下の『次へ』ボタンをクリック
※インストール済みだった場合は、『次へ』にせず、右上の『×』ボタンで
 そのまま閉じてOkです。
6)「Microsoft Office ○○ 2007の構成が正常に完了しました。」の
 メッセージが出たら、『閉じる(C)』をクリックして終了

【b・参照設定の場合】
1)当該MDBファイル(2007版に変換済みならaccdbファイル)を開く
2)Alt+F11キーの同時押し等で、Visual Basic Editor(VBE)を開く
3)メニューで「ツール(T)→参照設定(R)」を選択し、『参照設定』ダイアログ
 を開く
4)「Microsoft BarCode Control」のチェックがオフの場合はオンに設定
5-1)上記チェックがオンで「参照不可」となっていた場合は、一旦オフにした後、
 右側にある『参照』ボタンをクリック
5-2)『ファイルの参照』ダイアログで以下のファイルを指定し、『開く(O)』ボタンを
 クリック
 C:\Program Files\Microsoft Office\Office12\MSBCODE9.OCX
 (Officeのインストール先が「C:\Program Files\」だった場合)
6)『参照設定』ダイアログの『Ok』ボタンをクリックして終了


・・・以上です。

まず、念のためですが、ActiveXの一覧では、バーコードコントロールは
「Microsoft バーコード コントロール 9.0」として表示されますので、
確認してみてください。
(カレンダーコントロールだと、先頭に「Microsoft」が入らないのですが(汗))
http://office.microsoft.com/ja-jp/access-help/HA010201925.aspx


> 参照先のエラーという画面がACCESSを起動したときに出る

Access2003以前のバージョンで作成したMDBファイルを、Access2007で
開こうとした、ということでよろしいでしょうか。

原因としては、
 ...続きを読む

Qバーコードコントロールが印刷時に反映されない

いつもご丁寧な回答をくださりありがとうございます

エクセルにバーコードを埋めて書類を作っているのですが
(主に上紙に使用)

バーコードのリンクセルで指定したセルに新しい番号を入れ
デザインモードを終了すると

画面上は新しいバーコードが表示されるのですが
印刷プレビューと印刷そのものにうまく反映してくれません

なにか設定的なものが間違えているのでしょうか

文章が稚拙で申し訳ありませんが回答のほどよろしくお願いします。

Aベストアンサー

エクセルにおいてはバーコード画像は、「セルの値」ではないという認識が質問者にはありますか。
いわゆる「オブジェクト」扱いです。セルの値とは別世界のものです。
エクセルは「セルの値」を中心に処理するソフトです(エクセルの進歩の沿革からも)。これはエクセルの基礎的なことです。
ですからエクセルに画像を印刷する機能があるにしても、特別な指定をしないとをしないとだめと考えるべきです。
画像で右クリクー図の書式設定ープロパティーオブジェクトを印刷するーOK です。
この後、印刷プレビューをだすー印刷するでどうなりますか。これで解決しますか。
http://pc.z-kikaku.jp/excel/logs/2007/04/post-7.php
など。
ーーー
>バーコードのリンクセルで指定したセルに新しい番号を入れ
の意味を、実例を出して、説明しておいたほうが良いのでは。

QAccessでバーコードコントロール14.0が表示

こんにちは。Office 2010をインストールしています。Access2010を起動して、バーコードコントロールを配置しようとしています。

Office2010をインストールしていれば、バーコードコントロール14.0が表示されると、ネットにかいてありましたが、私のは9.0しか表示されません。

どのようにすればバーコードコントロール14.0が表示されるでしょうか?

Aベストアンサー

フォームのデザインビューで、
デザイン→コントロール→ActiveXの挿入からだと
Microsoft バーコード コントロール 14.0 が選択リストにあります。。。
配置してからVBEの参照設定をみると
Microsoft Access BarCode Control 14.0 にチェックが入っていますが
ファイルの実体は
C:\Program Files(x86)\・・・\Office\MSBCODE9.ocx
になっていますね。            ↑の 9 なら正常です。
心配なら実ファイルを見ると
ファイルバージョン 14.0.6009.1000
更新日時 2010/10/20 16:36
となってました。

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

いつもお世話になっています。
エクセルマクロを用いて連番のバーコードを出力しようと考えたのですが、なかなか難しく質問に来ました。

A1~A10にバーコード用の数字(チェックデジット込みの13桁)を準備しました。
これに対応させたバーコードデータを10個作ろうとしたのですが、linkedCellの設定も上手くできませんし、デザインモードの切り替えをしないと表示もできないようで、困っています。

マクロの記録を使っても上手くいかず・・・

アドバイスの程お願いいたします。
できればサンプルマクロをご提示いただくと幸いです。

Aベストアンサー

まさかそんなお話だとはw,元のご相談からは全く読み取れませんww
デザインモードは当然ww解除しておいて実行しますwww

sub macro1()
dim h, o
for each o in activesheet.oleobjects
o.delete
next
for each h In range("B1:B60")
with activesheet.oleobjects.add(classtype:="BARCODE.BarcodeCtrl.1", left:=h.left + 5, top:=h.top + 4, width:=h.width, height:=h.height - 4)
.linkedcell = h.offset(0, -1).address
.width = .width - 10
end with
next
end sub

Qバーコードが読み取れない原因について(エクセル)

お世話になります。

大変困っておりまして、
ご教授頂ければ幸いです。

エクセル内でバーコード(JAN)を一斉に作成したいと思い、
下記サイトのJANCODE-nicotanのアドインをインストールして
バーコードを作成する事には成功したのですが、

試しにプリントアウトしてみたところバーコードリーダーで
読み取れない事が分かりました
(同じJANをバーコード画像作成ソフトで作成すればちゃんと読み取れます。)

フォントサイズを変えてみたり、違うJANでも色々試してみましたが
全く読み取る事が出来ません。

読み取れない理由などが
お分かりになる方はいらっしゃいましたら
ご教授のほど宜しくお願い致します。

http://nicotan.at-ninja.jp/blog/newWindow/conversion_Excel_JANCODE-nicotan.html

Aベストアンサー

JANコードの場合、13桁の最初の4の後に 縦線2本 || が下まで長く伸び、6桁の後も下まで伸び、最後の6桁の後も 縦線2本 || が下まで長く伸びて、バーコードの左右端を明示する役目をしているような気がします。

それがないので、読み取り範囲やピッチなどの基準点検知をセンサ側が解析できないのではないでしょうか。

商品のコード設定│JANコード登録│ 一般財団法人流通システム開発センター
http://www.dsri.jp/jan/order_02.htm

バーコード JAN 規格 - Google 検索
http://www.google.co.jp/search?q=%E3%83%90%E3%83%BC%E3%82%B3%E3%83%BC%E3%83%89+JAN+%E8%A6%8F%E6%A0%BC

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

いつもお世話になっています。

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

Aベストアンサー

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

QEXCEL VBA で現在開いているブックのファイル名を取得する方法

EXCEL2003 VBAで業務を簡素化するために、現在開いているブックのファイル名を取得する方法が分かりません。
作業手順をマクロを使って処理していますが、オリジナルのワークブックをファイル名を変えて保存し、以後、このワークブックを読み込んで使用しています。
このときのVBAは、オリジナルのファイル名を使っているため、ファイル名を変更するとエラーになり、以後の業務に使用できません。
常にファイル名を取得出来るVBAをどなたか、教えて下さい。

Aベストアンサー

>現在開いているブックのファイル名
 ちょっと曖昧な表現かなぁという気もいたしますが、VBAが書いてあるブックのブック名は
ThisWorkbook.Name
で、現在 "アクティブにして" 操作対象になっているブックの名前は
ActiveWorkbook.Name
ですね。

 しかし、
>VBAは、オリジナルのファイル名を使っているため、ファイル名を変更するとエラーになり
というような文脈からすると、
ThisWorkbook.Name
の方ですかね。

Qエクセルマクロでバーコードを読みたい

こんにちわ!

エクセルマクロを使って在庫管理をできるものを作ろうと思っています。

そこで、USBバーコードリーダーなるものを発見したのですが、こういったバーコードリーダーをエクセルマクロを用いて読み取ることは可能でしょうか?

可能なようでしたら、その方法をご教授願います。

また、お勧めのバーコードリーダーがございましたら教えてください。(2次元バーコード(QRコード)リーダーは高いので、今のところ通常のバーコードで考えています)

Aベストアンサー

バーコードリーダーがあるのであれば、一度実際に試してみてください。
バーコードリーダーは、キーボードやテンキー、マウスと一緒で、一つの入力装置です。
読み取りの作業についてはあまりマクロは意識しなくてもよいと思います。
仮に、新しいブックで A1セルを選択した後に、バーコードリーダーで何らかの値を
読み込むと、その数値が A1セルに入ります。
キーボードやテンキーで数値を入れるのと同じ作業をしてくれるだけですね。

また、印刷されたバーコードにはいくつかの種類があります。
読み取ろうとするバーコードの種類に対応しているバーコードリーダーであれば
それで十分ということです。
バーコードの種類については
http://www.sensor.co.jp/barcode/jiten/barcode02.html
を参考にしてください。
実際に読み込んでみて、正しければOKです。
読み込んだ後に、そのデータをどう処理するのかというところでマクロが必要になる
といった具合です。

QExcelで =EMBED("Acrobat Document","")の意味を教えてください

あるExcelファイルを開いたところ 画像が貼りつけてあり この画像をポイントしたところ数式バーに =EMBED("Acrobat Document","") という数式が表示されました
この数式の意味することを教えていただけないでしょうか
よろしくお願いします

Aベストアンサー

動詞「埋める」を意味する"Embed"から、オブジェクトを埋めこむ関数と
してヘルプには記載が無い内部関数ですね。
http://office.microsoft.com/ja-jp/excel/HP052034191041.aspx

Excelファイルとは別に、オブジェクトとしてのフォームや外部シート、
Word文書やペイントなどからの関連した画像などが対象です。
"=EMBED("Acrobat Document)"とある場合は、他の回答にもあるように
外部のPDFファイルを埋めこんであることを意味しています。

この機能が埋めこんである場合には、対象をダブルクリックすることで
対象に関係するオブジェクトで埋めこんであるものが開きます。
PDFが関係しますので、これをダブルクリックすることでAdobeReaderで
対象が開くようになります。PDFファイルの場合だとトップページしか
表示されていない場合でも、ダブルクリックすることで2ページ以降を
見ることができる場合もありますので、これを埋めこむ意味合いはある
と思います。

関連するオブジェクトで編集できるなど、さまざまな場面で活用されて
いますので、今回以外でも見る機会はあるかと思います。

ちなみに、Wordにも似たようなものとしてNo.2さんが紹介しているもの
がありますので、Officeを使ううちに、いつかは利用するときもあると
思いますよ。

動詞「埋める」を意味する"Embed"から、オブジェクトを埋めこむ関数と
してヘルプには記載が無い内部関数ですね。
http://office.microsoft.com/ja-jp/excel/HP052034191041.aspx

Excelファイルとは別に、オブジェクトとしてのフォームや外部シート、
Word文書やペイントなどからの関連した画像などが対象です。
"=EMBED("Acrobat Document)"とある場合は、他の回答にもあるように
外部のPDFファイルを埋めこんであることを意味しています。

この機能が埋めこんである場合には、対象をダブルクリックす...続きを読む

QEXCEL VBAで計算値を四捨五入、切り上げ、切捨てする方法

ネットで探してみたのですが、計算結果を四捨五入して特定のセルを
返すにはどうしたらいいのでしょうか?

Sub hokangosa()

Dim ZPS As Double
Dim ZPOS As Double
Dim DMN As Double
MsgBox (" >>> 補間誤差自動計算 <<< ")
MsgBox (" >>> 初期値入力します <<< ")
ZPS = InputBox(">>> ステップを入力してください<<<")
ZPOS = Sheet1.Cells(22, 4).Value
DMN = ZPOS / ZPS
Sheet1.Cells(23, 6).Value = DMN
End Sub

ここでDMNの値を四捨五入したいです。

またこれとは別に切上げ、切捨ても教えていただけるとありがたいです。

Aベストアンサー

DMN = Application.WorksheetFunction.Round(ZPOS / ZPS, 0)
で、四捨五入
DMN = Application.RoundDown(ZPOS / ZPS, 0)
で切り捨て
DMN = Application.RoundUp(ZPOS / ZPS, 0)
で切り上げです。

引数で、対象桁を変更できます。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング