はじめまして、いまVBを使ってTextBoxに、ファイルを指定して
そのファイルの内容の一覧印刷ができるようなプログラムを組んでいます。
一部分だけですが、自分なりに考えて作ったものが、

FileNumber = FreeFile
Open frm01.CommonDialog1.FileName For Input As #FileNumber
Printer.Print StrConv(InputB(LOF(FileNumber), FileNumber), vbUnicode)
Close #FileNumber
Printer.EndDoc

のような感じで、もし他に方法があれば教えて欲しいのですが。

まだ、VBをはじめて1ヶ月程度の初心者なので、どうか詳しい方、
回答のほうをお願い致します。

A 回答 (2件)

関連付けされているアプリケーションで印刷するなら


-------------------------------------------------
'ファイルを拡張子に関連付けされているアプリケーションで印刷
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

Private Sub Command1_Click()
Dim strPath As String
strPath = "C:\TEMP\TEST.TXT"
Call ShellExecute(Me.hwnd, "Print", strPath, "", "", 0)
End Sub
-------------------------------------------------
で、印刷できますけど。
求めている回答と違っていたらごめんなさい。
じゃ、そゆことで。
    • good
    • 0
この回答へのお礼

さっそくの回答ありがとうございます!

Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

のあたりがよくわからないですけど、プログラムの中に組み込んでみて
何とか理解できるようにしたいと思います。

お礼日時:2001/06/20 12:42

「Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long」


の部分は、
Win32API(Windowsの基盤となるプログラムインターフェース)つーものです。
VB標準関数では実現できないこともできちゃうんです。
奥が深すぎますが・・・

初心者には、難しかったかもしれませんね。
ごめんなさい。
つーことで。
    • good
    • 0
この回答へのお礼

APIですか~・・・奥が深いですね~

ファイルを指定して印刷するところなのですが、
何とかできました!
いろいろやり方があるんですね。
APIなるものも今後勉強していきたいと思います。

また、VBの質問をしていることがあるかもしれませんので
見かけたらお願いしますね!

それではありがとうございました!!!

お礼日時:2001/06/21 12:01

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

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

QVB6から#C or .NET VB どちらが易しい? OS or 言語

マシンが64bit対応なので VisualBasic6から #Cか .NET VBに書き換えて64bitで動作するように検討しています。

VS2005 Proは購入済みで、OSはWindowsXP x64 proか
Windows2003を検討しています。どちらがよいかわかっていないのですが、まず最初にプログラムをどちらにコンバートするか悩んでいます。

いっそC#の方が将来性があるのでしょうか?
また、.NET VBの方が書き換えが簡単でしょうか?

以前、VB6のプロジェクトファイルを開こうとしたら
なんか変換したような気かしましたが、フォームやメインが無かった?ようなへんてこなCが出来上がりました。

VBからの移行された方でどちらを選んだのか知りたいです。

Aベストアンサー

多少、混乱と誤解とがあるようです。

まず、Windows 2003という製品はありません。
おそらくはWindows 2003 Serverと間違えているのだと
思いますが、これは企業向けのサーバー用OSで開発用
ではありません。

それとVisual Studio .NET 2002 または .NET 2003の
Visual Basic .NET とVisual Studio2005 のVisual
Basic 2005 とはそれぞれ別製品です。

言語仕様も異なっている所がありますので、VB 2005を
使用しているのに、VB .NETと言って質問すると違った
解答が返ってくる場合があります。

#VS 2005 Proを購入されたという事ですが、仕事で
#使うには中途半端だし、勉強用ならExpress Edition
#が無料で入手できるので、若干微妙な選択の様な
#感じがしますが...

また、Visual Studioは32ビットアプリケーションです
から64ビットOS上で動かしても、32ビット互換モード
で動作するのみで、64ビットで動くわけではありません。

ここから本題
VB6からの移植であるなら、やはりVB 2005の方が言語的
にも近いので移植も楽なはずです。

C#は一見、C言語の様に見えますが、全く違う言語です
から移植及び移植後の追加修正を行う際に苦労する事
になると思います。

C#の将来性については、今までのMSの言語の発売傾向
からすると、1~3年ぐらいでマイナーチェンジを出し
5~6年ぐらいで、新技術の成果といって新しい言語を
出すという事を繰り返しているので、C#に関しても
同じ事が行われる事も考えられますが、逆に長く続く
という可能性もあります。

どちらになるかは、売上げ実績次第?

多少、混乱と誤解とがあるようです。

まず、Windows 2003という製品はありません。
おそらくはWindows 2003 Serverと間違えているのだと
思いますが、これは企業向けのサーバー用OSで開発用
ではありません。

それとVisual Studio .NET 2002 または .NET 2003の
Visual Basic .NET とVisual Studio2005 のVisual
Basic 2005 とはそれぞれ別製品です。

言語仕様も異なっている所がありますので、VB 2005を
使用しているのに、VB .NETと言って質問すると違った
解答が返ってくる場合があります。

...続きを読む

QVB6のPrinter.ScaleWidth に対応するvb.netの

VB6のPrinter.ScaleWidth に対応するvb.netの命令はありますか。

VB.netでプリンタにグラフ印刷させようとしているのですが、VB6の場合Printer.ScaleWidth、Printer.ScaleHeightでA4サイズにスケーリングできたのですがVB.netではScaleWidth,ScaleHeightに変わるものを見つけることができません。

たとえばA4サイズにスケーリングする場合自分で座標の最大値を取り出しスケールを計算し座標に掛けてやるしかないのでしょうか。

環境Windows XP
VisualBasic 2010 Express

Aベストアンサー

グラフのイメージがファイルやBitmapオブジェクトとして取得できて
これを拡大(縮小)する方向でしょうか?

それなら
Graphics.DrawImage( Img, Rectangle )でスケーリングしてしまえばいいのではないかと思います

PrintPageイベントなどの 引数からe.PageSettings.PrintableAreaなどから印刷領域を取得して
Rectangleを決定してみてはいかがでしょう
縦横(アスペクト)比を考慮するなら 計算はしないといけないでしょうね …
縦基準なのか 横基準なのかの判定やそれに伴う他方の倍率の決定など

QVBでC言語の#ifdefの様な事がしたいのですが....

VBでC言語の#ifdefの様な事がしたいのですが
方法は有りますか?

Aベストアンサー

#If...Then...#Else...#End If と #Const ですね。

Qカスタムコントロール作ってます(VB.NET)。VB.Net にVB.6のActiveX作成時にあったプロパティページ作成ができないようですが

タイトルどうりです。VBNETのカスタムコントロールでデザインモードにおけるフォームつまりプロパティページやビジュアルにプロパティボックスから設定できるようにしたいのですが、どうしたらできるでしょうか?VB6ではできたのですが、(Activexコントロール)。

よろしくお願いします。

Aベストアンサー

通常のプロパティと同じように、プロパティ ウィンドウに項目を表示して設定できるようにする必要があります。
具体的には、
1. カスタム コントロールのクラスに外部公開する Property プロシージャを作成して、内部で値を保存できるようにする。
2. そのプロパティの宣言部分で、プロパティ ウィンドウに表示するように指示する属性値を設定する。

こんな感じです。

参考URL:http://www.atmarkit.co.jp/fdotnet/winexp/winexp02/winexp02_01.html

QVB6 CommonDialog フォルダ上書きコピー

VB6 で CommonDialog を使用し、指定先にフォルダをコピーしたいのですが
同じ名前のフォルダが有る場合、上書き確認が表示されずフォルダ配下に
移動してしまう。

On Error GoTo AAA
CommonDialog1.Flags = cdlOFNOverwritePrompt
CommonDialog1.ShowSave
Set cFso = New FileSystemObject
Call cFso.CopyFolder(フォルダ元パス, CommonDialog1.FileName, False)
Exit Sub
AAA:

ファイルの場合は確認ダイアログが開いたのですが、上記の場合上書きも出来ません。
コピー処理が違うのでしょうか?教えて下さい。(コピーは出来ました)
ファイルの場合 ⇒ FileCopy フォルダ元パス, CD1.FileName で処理しました。

Aベストアンサー

FileListBoxでも可能ですが、
フォルダ選択ダイアログ(Win32 APIのSHBrowseForFolder)というのがあります
こちらのダイアログの方がよく見ると思います

★フォルダ・ファイルの重複チェック確認は自分で作らないといけませんが


このカテゴリの人気Q&Aランキング

おすすめ情報