印刷する用紙が決まっていて、
左から何ミリ,上から何ミリのところにAのデータを印刷…
右から何センチ,下から何ミリのところにBのデータを印刷…
そんな感じに設定するには、どうすれば良いのですか?

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

A 回答 (3件)

VisualBasicのカテゴリなんでVBのアプリを作るときの話ですよね?



クリスタルレポート等のレポート作成環境を使うのがいちばん簡単でしょうね。
VB6には別の名前のやはり似たような環境がついてくると思いますので、それを使ってみてください。
また、印刷関係のOCXなども提供されていると思いますので、それらを使うこともできますね。

いずれにしてもプリンタ自体にも誤差があるため、あまりシビアなものは難しいと思います。
    • good
    • 0

ちなみに印刷するアプリケーションは何ですか?

    • good
    • 0

例えば履歴書用紙の中に文字を差し込み、印刷する。


そのようなことでしょうか?

当方では、用紙に合わせワープロソフトで左右余白・上余白・行間隔・文字間隔など基本設定をしてテストプリント。(試行錯誤です)
用紙に合わせ行・字間隔を調整しています。

最終的にプリンタ側で調整したこともあります。(0.5ミリ間隔で)

ちなみに当方で使用しているワープロソフトは「oasys」、プリンタはcanon LBP730です。
プリンタもDOSのドライバがあるものなら印字位置の調整が出来ると思います。
    • good
    • 0

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

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

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

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

Q1N(規定量?)とは?

1N NaOH
という記述で、先生が、確か「1規定量」と読んでいたように記憶しています。
この規定量というのは何でしょうか?

ご存知の方、お願いします。

Aベストアンサー

既にあるように、日化(日本化学会http://www.chemistry.or.jp/)では規定度「N」を使わないようになりました。これを受けて多くの業界では使わなくなりつつありますが、生きている業界(例 http://law.e-gov.go.jp/htmldata/S32/S32F03101000014.html、http://www.hokuriku-u.ac.jp/jimu/H16Syllabus/yakugaku/1nen/1-19.html等たまたま検索でヒットしたところ)もあります。にっかは化学系で最大の学会ですが、他の学会の決定には影響を及ぼしませんし、所詮、民間団体ですから立法を変更することはできません(国会での議決が必要、しかし、用語を置き換えると弁護士など法律家が理解できなくなるので、かなりの年月が経たないと変更されない。例、刑法の口語かには50年ぐらいかかった。ただし刑法の場合には法解釈の変更が何箇所か合ってここでもめた)。

酸塩基てきていの場合には、価数、でモル濃度を除した値
たとえば、
NaOHは一価だから、モル濃度と同じ
H2SO4は2価だから、モル濃度の半分
となります。

面倒くさいのが、酸化還元てきていの場合で、反応条件によって価数が変化する場合、6価クロム溶液とか過マンガン酸溶液で混乱しやすい。
沈殿てきていで、バリウムを硫酸でてきていする場合の硫酸のきていども混乱しやすいでしょう。
この混乱、モル濃度が異なる「同じ規定度の溶液」の存在、からにっかではモル濃度への統一を進めています。

一般人への化学の普及を目指したにっかのさいとを紹介しておきます
http://fchem.folomy.jp/
おまけ
http://frika.folomy.jp/

既にあるように、日化(日本化学会http://www.chemistry.or.jp/)では規定度「N」を使わないようになりました。これを受けて多くの業界では使わなくなりつつありますが、生きている業界(例 http://law.e-gov.go.jp/htmldata/S32/S32F03101000014.html、http://www.hokuriku-u.ac.jp/jimu/H16Syllabus/yakugaku/1nen/1-19.html等たまたま検索でヒットしたところ)もあります。にっかは化学系で最大の学会ですが、他の学会の決定には影響を及ぼしませんし、所詮、民間団体ですから立法を変更することはできません(国会...続きを読む

QVB6変数の宣言dim j,k,p,m,n as Integerは良くない?

お世話になります。

VB暦1年です。

汎用の変数宣言でタイトルのように
dim j,k,p,m,n as Integer
dim ssa,ssb as String

など、カンマ区切りで変数宣言を使っていたのですが
最近、知人にasの手前の変数は型どおり宣言されるが
その手前の変数はVariant型で宣言されてしまうと指摘されました。

指摘されるまで気にはしていませんでしたが
ウォッチで確認すると変数に代入されるまでは
型がVariant/Emptyとなってます。

以後、気をつければいいのですが
過去にコーディングしたプログラムにも多少、使用していて客先に納品してしまっているものもあります。
後々、問題になるのかな?

Aベストアンサー

おっしゃる通り、カンマで区切る場合は、
Dim j As Integer, k As Integer, p As Integer
という風にすべてAsで型を明示しないと、
Variant型になってしまいます。
つまり、
Dim j
Dim k
Dim p As Integer
とわけて書いた場合と同じです。
(VB.NETは、
Dim j, k, p As Integer
で全部Integerになるようなので、ややこしいですね)

すでにご存知とも思いますが、一般的にVariant型を多用しているコードは、宣言を見ても、どういう種類の値を使うかわかりづらいですし、比較対象の型を誤るというようなバグの原因になりやすいので、型を明示できるような状況で敢えてVariant型を使うべきではないです。

しかし、すでに納品してしまったコードについては、問題はメモリを余計に使ってしまうことくらいではないでしょうか?
他の人が気づかなかったことから考えるに、多分狭いスコープで使っていますよね? 比較対象や代入するべき型を誤るというようなロジックの誤りがない限り、少なくとも動作上の問題は発生しないと思います。ただ、直せる機会があるのであれば、直した方がいいとは思いますが。

おっしゃる通り、カンマで区切る場合は、
Dim j As Integer, k As Integer, p As Integer
という風にすべてAsで型を明示しないと、
Variant型になってしまいます。
つまり、
Dim j
Dim k
Dim p As Integer
とわけて書いた場合と同じです。
(VB.NETは、
Dim j, k, p As Integer
で全部Integerになるようなので、ややこしいですね)

すでにご存知とも思いますが、一般的にVariant型を多用しているコードは、宣言を見ても、どういう種類の値を使うかわかりづらいですし、比較対象の型を誤るというよう...続きを読む

Q内線規定とは?

電気工事施工に関する内線規定について教えて下さい。
内線規定は民間団体が各種法律に基づいて作成した
と聞いていますが、法律を遵守すれば、この規定に
違反しても法違反にならないのですか?
それとも、この規定を守らないと需要家として失格となり、給電を拒否されかねないのでしょうか?
また、「内線」の由来は何でしょうか?

Aベストアンサー

電気設備は電気事業法と経済産業省令である電気設備技術基準に準拠していることが必要です。技術基準は「火災のおそれがないこと」などと抽象的なので、「基準の解釈」が資源エネルギー庁から公表されています。これによると、「ガス管と電線は何m離して設置すること」とか、電線の太さは何Aのときは断面積何平方mm以上」などと、具体化しています。事実上これに準拠していないと使用前検査(新設時)、定期検査に合格できません。
これらの省令・解釈は「最低守るべき基準」になっています。
内線規定は法令で規定できない細部の補足や推奨的な事項が列挙されていて、技術基準・解釈を補完する位置付けです。


結論から言うと、内線規程は現時点で、一般家庭を除く需要家(特に高圧受電需要家)で設備を新設する場合に守るべき事実上のルールになっています。ただ、内線規定に沿って工事したかどうかをチェックする制度はありませんので、準拠しないからといって問題になることは有りません(寿命や安全性の点でよりベターなものが書かれているので、準拠しない場合はお客さんが困ります)

法令で予期していない、特殊な設計や新技術の採用は個別に経産局に相談し、保安上問題ないことが説得できればOKになりますが、時間と裏付け(実験データなど)が必要です。

なお一般家庭の工事は、電気工事士が、電気用品取締法に従った用品を使い、電気設備技術基準に沿って工事を行い、電力会社に受電の申し込みをすればよく、内線規程は必要ありません。

電力会社と接続する場合には「系統連系指針」が経産省から公表されていて、これに準拠しない場合は電力会社は接続を拒否できます。
電力会社は接続に際して技術的条件をユーザーに課すこともできますが、各社で定める供給規程に明示し経産省に届け出る必要があります。

電気設備は電気事業法と経済産業省令である電気設備技術基準に準拠していることが必要です。技術基準は「火災のおそれがないこと」などと抽象的なので、「基準の解釈」が資源エネルギー庁から公表されています。これによると、「ガス管と電線は何m離して設置すること」とか、電線の太さは何Aのときは断面積何平方mm以上」などと、具体化しています。事実上これに準拠していないと使用前検査(新設時)、定期検査に合格できません。
これらの省令・解釈は「最低守るべき基準」になっています。
内線規定は法...続きを読む

Q用紙設定で作成した用紙の用紙番号をVBで取得するには?

WindowsNT4.0(SP6)上で、VB5(SP3)で作成したアプリケーションからAccess98のレポートをオープンし、オープンしたレポートのページ設定(用紙サイズ)をVBのプログラム内部で設定できるようにしました。

用紙サイズを設定するときは 指定したレポートの PrtDevMode プロパティのメンバ PaperSize に PaperSizeメンバ値(8=A3、9=A4、10=A4 Small、11=A5 等)をセットするとうまく行きました。

しかし問題なのが、Windowsのプリンタ設定のサーバーのプロパティで作成した用紙サイズをレポートの用紙サイズに設定しようと思っても、PaperSizeメンバ値(用紙番号)がわからないため、設定できません。

サーバープロパティで作成した用紙の用紙番号をVBで取得する方法がありましたら是非教えて下さい!

ネット上でいろいろ調べているのですが見つかりません。
1つだけ同じ内容のものを見つけたのですが、使用しているソフトが Delphiだったのでダメでした。

どうかよろしくお願いします。m(__)m

WindowsNT4.0(SP6)上で、VB5(SP3)で作成したアプリケーションからAccess98のレポートをオープンし、オープンしたレポートのページ設定(用紙サイズ)をVBのプログラム内部で設定できるようにしました。

用紙サイズを設定するときは 指定したレポートの PrtDevMode プロパティのメンバ PaperSize に PaperSizeメンバ値(8=A3、9=A4、10=A4 Small、11=A5 等)をセットするとうまく行きました。

しかし問題なのが、Windowsのプリンタ設定のサーバーのプロパティで作成した用紙サイズをレポートの用紙サ...続きを読む

Aベストアンサー

DeviceCapabilities関数で用紙番号と用紙名を列挙出来ます
参考URLの0327, 0328参照

参考URL:http://www.vbvbvb.com/jp/gtips/index.html

Q社内規定のサブタイトルにある”History”とは?

社内規定で、規定名の次の行に"History"と書いてあります。
これはどういう意味なのでしょうか?辞書を見てみたのですが、ぴったりする言葉がありません。
日本語でいえば、どうなるのか、教えてください。
宜しくお願いいたします。

Aベストアンサー

正確には「revision histroy」or「history of revision」

「改訂、改定、改正、修正」履歴

「history」はご承知の「歴史」ですが、「personal history」となれば「パーソナル・ヒストリー、履歴(書)、経歴、キャリア、個人歴、自分史」となり、編纂を重ねてきた履歴と表現するのが適当だと。

Qマクロについて。S列の途中からデータがある最終行まで消したいのですが、 Range(”S8”,Cel

マクロについて。S列の途中からデータがある最終行まで消したいのですが、

Range(”S8”,Cells(Rows.Count,1).End(xlUp)).Select

Selection.ClearContents

と書いて実行すると
A〜S列丸ごとデータが消えてしまいます。

S列のみ消したい場合はどうすればよいのでしょうか?

ネットも探していますが列の最終行までっていうのがなかなか見つからず困っています。
どうかご教示ください。

Aベストアンサー

途中に空白があるなら、基準となる最下位行から上に検索して最終行を求めないとイケナイ。

Range("S8:S" & Range("S1").Range("S65536").End(xlUp).Row).Clear

.End(xlUp).Row

.Range("S65536").End(xlUp).Row

Qsub-10nm resolutionとは

論文でたまに「sub-10nm resolution」という節を見かけます。
これって要は「1nm resolution」と同じ意味のことだと思うのですが
なぜこのような言い方をするのでしょうか?

Aベストアンサー

sub-10nm は10nm未満というように訳されますので、
10nm未満の分解能ということだと思います。
参考URLです(アルク)
http://eow.alc.co.jp/sub-/UTF-8/?pg=1

subdivide(分割する)を連想なさって1/10nmと推測なされたのでしょうか?

QVB.NET+ActiveReports で印刷時の用紙トレイ選択

VB.NET2003+ActiveReports を使用し、
帳票(伝票)を複数のプリンタから振り分けて印刷しようとしています。

帳票はB5サイズの専用用紙で、プリンタのどの部分に給紙されているかは
プリンタ毎に異なるので、動的にプリンタと用紙トレイを変更しようとしています。

現在、テストに使用しているプリンタはA4の用紙トレイ(Upper)とB5の手差し(Middle)が設定されており、


Dim rpt As New rptLayout01

rpt.Document.Printer.PrinterName = 指定したプリンタ名
rpt.PageSettings.PaperSource = 指定した用紙トレイ


と記述しているのですが、A4の用紙トレイを指定しても、
B5の手差しから印刷されてしまいます。

A4のトレイを指定したときに、プリンタ側で「用紙サイズエラー」となれば納得できるのですが、
そういったメッセージも表示されずそのまま印刷されてしまいます。


これは用紙サイズが一致しないとき、プリンタ側で親切に自動選択をしてくれているのでしょうか?

ご存じの方、お知恵をお貸しください。
テストで使用しているプリンターは、EPSON LP-9400 です。

VB.NET2003+ActiveReports を使用し、
帳票(伝票)を複数のプリンタから振り分けて印刷しようとしています。

帳票はB5サイズの専用用紙で、プリンタのどの部分に給紙されているかは
プリンタ毎に異なるので、動的にプリンタと用紙トレイを変更しようとしています。

現在、テストに使用しているプリンタはA4の用紙トレイ(Upper)とB5の手差し(Middle)が設定されており、


Dim rpt As New rptLayout01

rpt.Document.Printer.PrinterName = 指定したプリンタ名
rpt.PageSettings.PaperSource = 指...続きを読む

Aベストアンサー

 用紙サイズの設定とトレイの設定が矛盾すると、Active Reportsがプリンタのトレイ設定を(「自動選択」に)戻します。正確には.Net Frameworkのプリンタコンポーネントが。この辺は、印刷をかける時に印刷設定ダイアログを出してみれば、トレイの設定がクリアされている事が確認できるでしょう。

 で、とにかく正しく動けば良いという場合、もっとも簡単な回避策は、プリンタエントリを2つ作る事。
 Epson LP-9400のエントリを2つ作り、プリンタのプロパティの詳細設定→標準の設定にて用紙サイズと向きを設定し、プログラムからはプリンタのエントリ名をrpt.Document.Printer.PrinterNameに設定する。
 後、レポートのデザインでレポートのプロパティだったか何だったかで、用紙サイズを「デフォルトプリンタ」にして置くこと。ここを「B5」とか「12×4インチ」など固定にして置くと、トレイの設定と矛盾して初期設定に戻りまふ。

Qオービスとは違う? Nシステムいついて

オービスと間違い易いNシステムがありますが、
OKなどでこのNシステムでもスピード違反を取り締まるようなことが書かれて疑問に思いました。
(上から3番目の投稿者10ptの人です。)
http://okwave.jp/kotaeru.php3?q=1688237
インターネットではNシステムでは通常ナンバー等を読み取るので、
スピード違反などの取り締まりはしてないというのが大方なのですが
どうなのでしょうか?
ご存知の方 いらっしゃいましたら教えてください。

またNシステムのストロボは日中でも気付くものでしょうか?

よろしくお願いいたします。

Aベストアンサー

 その3番目の人です(^^;

Nシステムは基本的にナンバーの読み取りを目的として、交通違反などの犯罪以外の調査に使われるというのが前提となっています、恒久的な設置型速度違反取り締まり装置の場合は、事前に取り締まり中もしくは取り締まり区間と明示しなければならず

それ以外の方法での検挙は、今の法律ではできないようになっています。

Nシステム設置区間に、この明示(看板など)はありません。


ですから、基本的にNシステムでは取り締まりできないようになっています。また、速度に反応して撮影をするという機構と連動するよう組まれていませんので、速度違反に関わらず全ての通行車両のデータが記録されます。

なおNシステムは可視光線を含まない光線を照射しているので(ストロボは組みこまれていません)、人間が発光したかどうか感じることはありません。

気がつかないということ。(^^;

Qexcel VBAで、プリンターの印刷余白及び用紙サイズを取得するには

Excelでラベル印刷を行っています。
社内には多種類のプリンターがあり、それぞれで印刷可能位置が違うため、中には最後の行が半分しか印刷できないようなプリンターもあります。
そのようなプリンターに関しては、印刷行数を1行減らすよう設定したいと思っています。 そこでプリンターが持っている印刷可能位置(上下・左右余白等)を取り込みたいのですがその方法が分かりません。 どなたかご教示お願いします。

Aベストアンサー

Declare Function CreateDC Lib "gdi32.dll" Alias "CreateDCA" _
(ByVal lpszDrive As String, ByVal lpszDevice As String, _
ByVal lpszOutput As Long, lpInitData As DEVMODE) As Long



Declare Function GetDeviceCaps Lib "gdi32" ( _
ByVal hdc As Long, _
ByVal nIndex As Long _
) As Long

Declare Function DeleteDC Lib "gdi32" (ByVal hdc As Long) As Long

Private Const HORZRES = 8 '実際のスクリーンの幅(実印刷領域)
Private Const VERTRES = 10 '実際のスクリーンの高さ
Private Const PHYSICALWIDTH = 110 '物理的幅(実用紙サイズ)
Private Const PHYSICALHEIGHT = 111 '物理的高さ
Private Const PHYSICALOFFSETX = 112 '印刷可能な左方向のマージン
Private Const PHYSICALOFFSETY = 113 '印刷可能な上方向のマージン

Public Const CCHDEVICENAME = 32
Public Const CCHFORMNAME = 32

Public Type DEVMODE
dmDeviceName As String * CCHDEVICENAME
dmSpecVersion As Integer
dmDriverVersion As Integer
dmSize As Integer
dmDriverExtra As Integer
dmFields As Long
dmOrientation As Integer
dmPaperSize As Integer
dmPaperLength As Integer
dmPaperWidth As Integer
dmScale As Integer
dmCopies As Integer
dmDefaultSource As Integer
dmPrintQuality As Integer
dmColor As Integer
dmDuplex As Integer
dmYResolution As Integer
dmTTOption As Integer
dmCollate As Integer
dmFormName As String * CCHFORMNAME
dmUnusedPadding As Integer
dmBitsPerPel As Long
dmPelsWidth As Long
dmPelsHeight As Long
dmDisplayFlags As Long
dmDisplayFrequency As Long
End Type

Const LOGPIXELSX = 88
Const LOGPIXELSY = 90

Sub test()

'http://hpcgi1.nifty.com/MADIA/VBBBS/wwwlng.cgi?print+200505/05050096.txt より
'アクティブプリンターの取得
Dim ret As Long
Dim lngPrinter As Long
Dim ActivePrinterName As String
Dim devm As DEVMODE
Dim intPos As Integer

devm.dmSize = LenB(devm)

intPos = InStr(1, Application.ActivePrinter, " on ")
If intPos > 0 Then
ActivePrinterName = Mid$(Application.ActivePrinter, 1, intPos - 1)
End If

If intPos = 0 Then
intPos = InStr(1, Application.ActivePrinter, " の ")
If intPos > 0 Then
ActivePrinterName = Mid$(Application.ActivePrinter, intPos + 3)
Else
MsgBox ("ありえない")
Exit Sub
End If
End If


lngPrinter = CreateDC("WINSPOOL", ActivePrinterName, 0, devm)

'http://www.bcap.co.jp/hanafusa/VBHLP/pMargi.n.htmより
'プリンターの印刷余白を取得

Dim LeftMargin As Long, TopMargin As Long
Dim RightMargin As Long, BottomMargin As Long
Dim PhysHeight As Long, PhysWidth As Long
'マージンをピクセル単位で取得しそれをmmに変換
LeftMargin = ScaleX(lngPrinter, GetDeviceCaps(lngPrinter, PHYSICALOFFSETX))
TopMargin = ScaleY(lngPrinter, GetDeviceCaps(lngPrinter, PHYSICALOFFSETY))
PhysWidth = ScaleX(lngPrinter, GetDeviceCaps(lngPrinter, PHYSICALWIDTH))
PhysHeight = ScaleY(lngPrinter, GetDeviceCaps(lngPrinter, PHYSICALHEIGHT))
'用紙サイズから印刷可能領域を差引きマージンを求める
RightMargin = PhysWidth - (ScaleX(lngPrinter, GetDeviceCaps(lngPrinter, HORZRES)))
BottomMargin = PhysHeight - (ScaleY(lngPrinter, GetDeviceCaps(lngPrinter, VERTRES)))
Debug.Print "プリンター用紙印刷余白(左) : " & LeftMargin & " mm"
Debug.Print "プリンター用紙印刷余白(上) : " & TopMargin & " mm"
Debug.Print "プリンター用紙印刷余白(右) : " & RightMargin & " mm"
Debug.Print "プリンター用紙印刷余白(下) : " & BottomMargin & " mm"
Debug.Print "プリンター用紙サイズ(幅)  : " & PhysWidth & " mm"
Debug.Print "プリンター用紙サイズ(高さ) : " & PhysHeight & " mm"

ret = DeleteDC(lnghPrinter)

End Sub

'http://www.kit.hi-ho.ne.jp/h-suenaga/progtips.html#bcb1 より ピクセル->mmの計算式
'1インチ = 25.4mm
Function ScaleX(ByVal lngPrinter As Long, ByVal Value As Long)
ScaleX = Int(0.5 + 25.4 * Value / GetDeviceCaps(lngPrinter, LOGPIXELSX))
End Function
Function ScaleY(ByVal lngPrinter As Long, ByVal Value As Long)
ScaleY = Int(0.5 + 25.4 * Value / GetDeviceCaps(lngPrinter, LOGPIXELSY))
End Function

Declare Function CreateDC Lib "gdi32.dll" Alias "CreateDCA" _
(ByVal lpszDrive As String, ByVal lpszDevice As String, _
ByVal lpszOutput As Long, lpInitData As DEVMODE) As Long



Declare Function GetDeviceCaps Lib "gdi32" ( _
ByVal hdc As Long, _
ByVal nIndex As Long _
) As Long

Declare Function DeleteDC Lib "gdi32" (ByVal hdc As Long) As Long

Private Const HORZRES = 8 '実際のスクリーンの幅(実印刷領域)
Private Const VERTRES ...続きを読む


人気Q&Aランキング

おすすめ情報