gooID利用規約 改定のお知らせ

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

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

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

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

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

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

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

A 回答 (3件)

エクセルにおいてはバーコード画像は、「セルの値」ではないという認識が質問者にはありますか。


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

バーコードコントロールの再描画問題ですね。


私も過去に同じ問題でかなり悩みました。
keithinさんの回答ではシートを新しく作成することでオブジェクトの再描画を強制させる方法ですが、もっと楽な方法があります。

オブジェクトのサイズを変更することによって再描画を誘発させる方法があります。

With [バーコードコントロールのあるシート名].OLEObjects("[再描画を行いたいバーコードコントロール名]")
.Object.Value = "[目的のバーコードの中身]"
.Width = .Width - 3
.Width = .Width + 3
End With

これだけです。
幅を3だけ小さくしてすかさずサイズを3大きくして元の大きさに戻します。オブジェクトの大きさが変わるとバーコードコントロールの中身を拡大/縮小するために再描画が行われます。このときにバーコードコントロールの内容が新しい内容に強制的に書き換えられます。変更するサイズが3である理由はバーコードコントロールのサイズを厳密に調整しようとするとわかりますが、小数点を出さずに変更できるのは3ずつであるからだったりしますが、お好きな数字にしてください。

後はこのコードを印刷が行われる前に実行されるようにすればいいだけです。keithinさんが出しているBeforePrintイベントに書き込むのが妥当でしょう。
複数バーコードコントロールがある場合は複数回書くなりFor Eachでループを組むなり工夫してください。
では健闘を祈ります。

この回答への補足

皆様、回答ありがとうございました。

結局、
1.新しいバーコード番号を入力
2.デザインモードのオン・オフをする
3.バーコードコントロールのプロパティを一回開く→OK

でなぜか解決しました。

大変勉強になりました。

補足日時:2011/05/19 15:14
    • good
    • 7

しばしば話題になるんですがなかなか名案が浮かばない,アタマイタイ問題の一つです。


doeventsもrefreshも効かない不具合です。

ThisWorkbookに
private sub Workbook_BeforePrint(cancel as boolean)
 application.enableevents = false
 activesheet.copy before:=worksheets(1)
 worksheets(1).printpreview ’またはprintout
 application.displayalerts = false
 worksheets(1).delete
 application.displayalerts = true
 cancel = true
 application.enableevents = true
end sub

などのように仕込んで回避できることを発見した人がいました。


#こういった問題もあるので「バーコードフォント」をご利用頂いた方が簡単で安全かなと思います。
    • good
    • 0

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

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

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

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

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

QExcelの Microsoft バーコードコントロール 14.0

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

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

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

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

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

Aベストアンサー

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

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で
開こうとした、ということでよろしいでしょうか。

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

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バーコードが読み取れない原因について(エクセル)

お世話になります。

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

エクセル内でバーコード(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エクセルマクロを用いたバーコード出力

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

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

QAccessでのバーコードコントロールについて

こんにちわ。

Access2003で、レポートにバーコードを表示しようとしているのですが、
表示されずに困っています。
もともと、Access97で作成したmdbを前任者がAccess2003で使えるように変換したものです。

レポートに以前のバージョンではバーコードが出ていたのですが、
Access2003バージョンにしてから表示されなくなりました。
バーコードコントロールが初期化(と言うのでしょうか?)されたように、
枠だけになっており、プロパティにコントロールソースの項目も消えてしまっています。
試しに、同じレコードソースを持ち、バーコードコントロールに同じコントロールソースを持つレポートを作ってみたのですが、
デザインの状態でサンプルが表示されるのですが、ビューを見ると全く表示されません。

当方の環境が、WindowsXPにAccess97、Access2000、Access2003がインストールされている環境であるということも影響するのでしょうか?
Access2003以外をアンインストールして試してみれば良いのですが、
日常業務に支障が出てしまうので踏み切れずにおります。

何か情報をお持ちの方、お願いいたします。

こんにちわ。

Access2003で、レポートにバーコードを表示しようとしているのですが、
表示されずに困っています。
もともと、Access97で作成したmdbを前任者がAccess2003で使えるように変換したものです。

レポートに以前のバージョンではバーコードが出ていたのですが、
Access2003バージョンにしてから表示されなくなりました。
バーコードコントロールが初期化(と言うのでしょうか?)されたように、
枠だけになっており、プロパティにコントロールソースの項目も消えてしまっています。
試しに、...続きを読む

Aベストアンサー

> レポートに以前のバージョンではバーコードが出ていたのですが、
> Access2003バージョンにしてから表示されなくなりました。
> バーコードコントロールが初期化(と言うのでしょうか?)されたように、
> 枠だけになっており、プロパティにコントロールソースの項目も消えてしまっています。
バージョンの違いによりActiveXコントロールのバージョンや参照が変わってしまった為かと思います。
ちゃんとバーコードを貼り付けなおせばいいでしょう。

> 試しに、同じレコードソースを持ち、バーコードコントロールに同じコ
> ントロールソースを持つレポートを作ってみたのですが、
> デザインの状態でサンプルが表示されるのですが、ビューを見ると全く
> 表示されません。
ちゃんとレポートのレコードソースを設定していない為か、
バーコードのスタイル設定ミスかデータミスでしょう。

QVBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。

マクロを含むエクセル(EXCEL2000)をHTMLのページからハイパーリンクで呼び出しています。そのエクセルでボタン操作に従い罫線やセルの着色を行っています。しかし、着色結果が更新されません。スクロールバー等で画面を移動すると正しく着色されています。このエクセルを通常に起動した場合は、問題なく動作するのですが、シート全体を更新する方法を教えて下さい。
各関数では、以下のスクリーンアップデータの処理を入れています。
Application.ScreenUpdating = False
    (処理)
Application.ScreenUpdating = False

Aベストアンサー

たぶん、EXCEL独特の問題だと思うのですが、HTML の場合、すでに色の部分を表面上で使用しているので、それでメモリが占有させているのではないかと私は思っています。

他にも、

 ActiveWorkbook.HTMLProject.RefreshDocument True

というのがありますね。
ホスト アプリケーション内のブックに含まれる HTML プロジェクトを更新する、というのがありますね。

Qエクセルでバーコード表示

知り合いからのメールの添付ファイルが開けません。
開けないというか、エクセルにバーコードが表示されないんです。
送信者は、もちろんエクセルでバーコードが表示されているようです。
ネットで調べたところ、エクセルでバーコードは表示できないようなのですが
どうしたら、今あるファイルのバーコードが読み込めるようになるのでしょうか?
バーコードが表示されてたと思われる場所には
テキストボックスでなにやら数字が表示されているんです。
osはXPでエクセル2002を使っています。
どなたかよろしくお願いします。

Aベストアンサー

バーコードコントロールはアクセスに入っています。
アクセスがインストールされているパソコンで開いて見てください。

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で計算値を四捨五入、切り上げ、切捨てする方法

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

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ランキング

おすすめ情報