玄関へお回り下さい。 前のログ 次のログ

No.5250  RE:エクセルの印刷をキャンセル時  投稿者:花ちゃん [02/7/12(金)22:45分]

今、プリンターがつながっていないので未確認ですが


xlSheet.PrintOut の前にこれを入れて見ては、 xlApp.DisplayAlerts = False 

xlApp の部分は環境に合わせて下さい。

※ 確かめて見ましたが、だめでした。
   ごみレスで、済みませんでした。


No.5249 エクセルの印刷をキャンセル時  投稿者:すー [02/7/12(金)22:02分]

いつも参考にさせていただいています。

今回は、Excelの印刷に関連する質問をさせていただきます。

VBからExcelへデータを格納し、「xlSheet.PrintOut」の命令で印刷しているのですが
印刷命令の直後に表示される「1/1 を印刷中です」というメッセージボックスから
キャンセルボタンを押下されるとエラーになってしまい困っています。

エラートラップで対処しようと思っていたのですが
私にはその他のエラーとの判別がつけられませんでした。

何か良い方法をご存知の方がいらっしゃいましたら、ご教授ください。

No.5248 Re: DBのテーブル名取得  投稿者:ふぇび〜 [02/7/12(金)17:43分]

ありがとうございます。

さっそく調べてみたいと思います。

No.5247 Re: DBのテーブル名取得  投稿者:あいぼん [02/7/12(金)15:42分]

DAO の Database オブジェクトにある、

TableDefs コレクション(プロパティ)や
TableDef オブジェクトについて調べてみて下さい。

No.5246 DBのテーブル名取得  投稿者:ふぇび〜 [02/7/12(金)14:57分]

ユーザーがMDBファイルを開く処理をしたときに

自動的にそのMDBに含まれるテーブル名をコンボボックスのリストに追加したいのですが…
MDBに含まれるテーブル名を取得するにはどの様にすれば良いでしょうか?

No.5245 RE:エクセルファイルを読み込む  投稿者:NAO★ [02/7/12(金)13:28分]

読み込みと書き込みで同じファイル番号(の変数)を使用していますよ。

同時に別のファイルを開く時は別のファイル番号を使用してください。

あと、Excel のファイルはバイナリなので
> Line Input #nFile, InData
ではダメです。
このサイトの「VBからエクセルを操作する(その1)」
あたりを参考にして読み込んだデータをテキストファイルに書き込むように
してください。

No.5244 エクセルファイルを読み込む  投稿者:アンパンマン [02/7/12(金)12:14分]

こんにちは、お久しぶりです。


いきなりですが、いくつかある、エクセルファイルを一つのテキストファイルにまとめたいのですが、
Open ファイル名 For Input as フリーファイル
Open ファイル名 For Output as フリーファイル
では、出来ないのでしょうか?

エクセルの一部のセルだけでいいので、
Dim InData as String
dim InD() as String

Do Until EOF(nFile)
Line Input #nFile, InData
InD=Split(InData,"?",-1)
Print #nFile, InD(1) & " " & InD(3)
Loop

上記の様に書きましたが、?の部分をどうしたらいいか判りません。
CSVでは全然できるのですが・・・。

やはりエクセルファイルは、普通にエクセルファイルを開いてやるべきなのでしょうか?
よろしくお願いします。

No.5243 セットアップウィザードでデータベースが使えない  投稿者:Yuuko [02/7/12(金)11:3 分]


VB5でAccessのデータベースを使用したプログラムを作っています。

それを セットアップウィザードでセットアッププログラムを作ったのですが
Offisの無いパソコンにインストールすると
Accessのデータベースにアクセスするところで エラーが起こってしまいます。

基本的には セットアップウィザードで普通にやれば良いとは聞いているのですが
Accessのデータベースを使用する際 作る過程でポイントがあるのでしょうか?


Win 98
使用するデータベース Access 2000 Or 97
VB5
参照設定: Microsoft DAO 3.6 Object Library

-----------------
また
Access 2000の入った パソコンに
Access 97 のデータベースを使用した VBアプリケーションをインストールしても
Access 2000は問題は 発生しないのでしょうか?

No.5242 setsockoptで IP_ADD_MEMBERSHIP は可能?  投稿者:みけ [02/7/12(金)10:39分]

アドバイスありがとうございます。

setsockopt は以下のように定義しています。
(ソケットの作成やbind は成功しているんですけどね。。。)

Declare Function setsockopt Lib "ws2_32.dll" (ByVal s As Long, _
    ByVal level As Long, ByVal optname As Long, optval As Any, ByVal optlen As Long) As Long


Type ip_mreq
imr_multiaddr As SockAddr
imr_interface As SockAddr
End Type

Dim imr As ip_mreq
Dim lngRet As Long '戻り値

imr.imr_multiaddr.sin_addr = lngIPAddr
imr.imr_interface.sin_addr = INADDR_ANY
lngRet = setsockopt(ByVal mlngSock, IPPROTO_IP, IP_ADD_MEMBERSHIP, imr, ByBal Len(imr))


No.5241 Re: ocx(ActiveXコントロール)について  投稿者:K.J.K. [02/7/11(木)20:58分]

[参照設定]ではなくて、[コンポーネントの追加]ですよね。

コントロールとして使う場合は。

で、VB6ならば可能です。新機能のところに思いっきり書いてあります。

No.5240 RE:コンボボックスについて  投稿者:花ちゃん [02/7/11(木)20:07分]

他にいい方法があれば別ですが、ちょっと見当らなかったので

コンボボックスのテキスト部分にテキストボックスを被せて表示し

Private Sub Combo1_Click()
Text1.Text = Left$(Combo1.Text, 30)
End Sub

このようにすれば、一応可能かと思います。

No.5239 ocx(ActiveXコントロール)について  投稿者:生茶 [02/7/11(木)17:59分]

はじめまして。

ocxの呼び出しかたについて質問です。
"参照設定"を行っていないocxの画面を、実行時にForm上に生成することは可能ですか?

ちなみに呼び出し元は、標準EXEです。

No.5238 コンボボックスについて  投稿者:初心者 [02/7/11(木)17:03分]

コンボボックスに

Combo1.AddItem "○ 1"
というアイテムを入れて表示されるのが「○」だけにしたいのですが、何かいい方法ありませんか?

コントロール自体のサイズを変えただけでは実行し、選択するときに「1」も見えてしまいました。

どなたかお願いしますm(__)m

No.5237 保存・初期化  投稿者:うさうさ [02/7/11(木)16:38分]

こんにちは。

append命令でファイルに読み込んで、保存させています。
それで、そこに保存させたデータを消すにはどうしたらいいんでしょうか?
どうしてもわからなくて、いきずまっています。
誰かおわかりの方がいらしたら、よろしくお願いします。

No.5236 Re:DriveListBoxに追加したい    投稿者:Say [02/7/11(木)15:50分]

そのままではできません。

ラッピングしてカスタムコントロール
作るかなにかする必要があるでしょう。

が、「それっぽい」ものでよければ
以下のような方法があります。

1.適当なところ(たとえばC直下)に「マイネットワーク」フォルダーを作る
2.「マイネットワーク」フォルダーに「マイネットワーク」内の
アイテム(「ネットワーク全体」とか他のマシン)のショートカットを作っていれる
3.「マイネットワーク」フォルダーを共有する
4.「ネットワークドライブの設定」で「マイネットワーク」フォルダーを
ネットワークドライブに設定する。

これで、DriveLIstBoxに "マシン名"のマイネットワーク(F) とか表示されます。

No.5235 DriveListBoxに追加したい  投稿者:歯 [02/7/11(木)11:07分]

DriveListBoxを普通にセットし、実行すると自分のドライブ(マイコンピューター以下)
しかひょうじされませんよね。

そこに、マイネットワークを追加したいのですが、できますか?
初心者なのですみません・・・

No.5234 RE:setsockoptで IP_ADD_MEMBERSHIP は可能?  投稿者:NAO★ [02/7/10(水)19:25分]

>    lngRet = setsockopt(mlngSock, IPPROTO_IP, IP_ADD_MEMBERSHIP, imr, Len(imr))


・API関数の質問の時は、渡す変数がどういう型にしているのか書かないと答えられないですよ。
・imr は構造体だと思いますが、アドレス渡しにする必要があるのでVarPtr()でアドレスを
求める必要があるかも


No.5233 数字の表示間隔に付いて  投稿者:にん [02/7/10(水)19:10分]

はじめまして

数字を書き込む際に、分からない現象が起こっています。
APIを使用して表示しているのですが、文字の場合間隔が一定なのですが、
数字の場合 01 23 45 67 と表示されます。

文字の大きさが小さいと顕著に表れます。
01234567と表示させるよい方法はないでしょうか?
よろしくお願いします。
下記のようにTEXTOUTでメタファイルに書き込んでます。

txtKazu="01234567"
TextOut hdc, int_X, int_Y, txtKazu, LenApi(txtKazu)

No.5232 setsockoptで IP_ADD_MEMBERSHIP は可能?  投稿者:みけ [02/7/10(水)18:03分]

はじめまして。

もしご存知の方がいらっしゃったら教えてください。
WinAPI32 を使って VBで以下の処理をしたところsetsockoptで
戻り値がエラー(−1)になってしまいました。

imr.imr_multiaddr.sin_addr = lngIPAddr
imr.imr_interface.sin_addr = INADDR_ANY
lngRet = setsockopt(mlngSock, IPPROTO_IP, IP_ADD_MEMBERSHIP, imr, Len(imr))

何故エラーになるのか、お分かりになる方がいらっしゃいましたら
教えて下さい
よろしくおねがいします。

No.5231 Re3: ISAMドライバーについて  投稿者:まぁちゃん [02/7/10(水)17:46分]

VBのバージョンをSP5にしたらうまくいくようになりました。

色々とお騒がせしてすみませんでした。

No.5230 Re2: ISAMドライバーについて  投稿者:まぁちゃん [02/7/10(水)16:00分]

K.J.Kさんアドバイスありがとうございます。

早速マイクロソフトのページで調べてみました。
それらしい事象の原因はISAMドライバーのレジストリ設定がおかしいと
いうことみたいなので、VB6とOFFICE2000を一度削除して再インストール
してみました。が、やはりうまくいかず困っています。
(手動でのレジストリ設定は今ひとつよくわかりませんでしたので)

ちなみにVBの中でのDBの設定は以下のようにしております。
(ODBCの設定でファイルdsnを設定して)
Set MyCnn = New ADODB.Connection
MyCnn.ConnectionString = "filedsn=SSM;uid=admin;pwd=;"
MyCnn.Open
若しくは
Set MyCnn = New ADODB.Connection
MyCnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=SSM.mdb;"

プログラムでの設定が悪いのであれば指摘していただけると幸いです

No.5229 Re: ISAMドライバーについて  投稿者:K.J.K. [02/7/10(水)12:56分]

# 全角・半角文字の使い分けは適切に。

# (英数字は半角、カタカナは全角)
# 回答ではありません。

Microsoftのサイト内で検索してみるとか。幾つか原因があったと思いますので、
それらには一通り目を通して置いた方がいいんじゃないでしょうか。


No.5228 ISAMドライバーについて  投稿者:まぁちゃん [02/7/10(水)11:27分]

初めまして、途方にくれて色々と渡り歩いているうちにこのホームページに辿り着きました。

どなたかお知りであればご教授願います。
VB6でACCESSを使ってプログラムを作ったのですが、Windows98からXPに変えたら
「Couldn’t find installable ISAM」というエラーが出るように
なってしまいました。
ISAMドライバーが見つからないということで色々と調べてはみたのですが解決方法がわかりません。
もしお知りの方がいれば助けて下さい。

No.5227 ADOについて  投稿者:さだおか [02/7/10(水)10:45分]

ADOについて質問です。

ADOとmdbファイルのDB接続で複数のセッションを持たせることはできるのでしょうか?

できるとしたら、どのようにしたら良いのですか?
今、フォームを表示したときにクラスを生成とDBのオープンを行い、
フォームの終了とともにクラスの解放とDBのクローズを行っています。

フォームを2つ以上生成した場合、1つのフォームを終了したときに
DBがクローズされていてさらに、クラスも解放されてしまっているので
2つめのフォームを終了する時点でエラーとなってしまいます。

複数セッションを持たせるにはどうしたらよいのでしょうか?
わかる方がいましたらよろしくお願いいたします

No.5226 RE:VBから他EXEのF10を押す  投稿者:nobu [02/7/10(水)7:00分]

ありがとうございました。

サンプルは上手く動作しました。後は実際の自分の
ソフト内で試してみます。


No.5225 RE:VBから他EXEのF10を押す  投稿者:花ちゃん [02/7/09(火)21:01分]

'事前に電卓を起動しておいて下さい。

Private Sub Command1_Click()
'電卓に [F1] キーを送り電卓のヘルプを表示する
AppActivate ("電卓")
SendKeys "{F1}", True
End Sub

これなら、簡単ですが、機種によりキーが誤作動する場合があります。

No.5224 DBGridについて  投稿者:しょう [02/7/09(火)20:58分]

はじめまして、しょうと申します。

VB初心者なので、ご指導お願いします。
DBGridコントロールについてなのですが、
セルデータの変更がうまくいきません。なぜなのかわからないので、
ご指導いただければ、幸いです。

<EXCEL2000>で作成されている、
EXCELデータをDbgridコントロールで表示しています

AllowUpdateをtrueにしてあります。
実行し、セルデータを変更後一度終了し、再度実行しても、
変更したデータが表示されています。
しかし。EXCELファイルの元データの方は、更新日付が変わっているだけで、
中身のデータは、変更されていません。

デバックとして、DBGrid1_AfterUpdate()のイベントがはしるか
どうかを確認しましたが、ちゃんとそのイベントを通っています。

なぜ、EXCELファイルのデータ(中身)は変更されないのでしょうか?

あと、1行に5列あるデータなのですが、
変更をされたデータの1行の値を取得するにはどのようにすればよいのでしょうか?

よろしくおねがいします



No.5223 VBから他EXEのF10を押す  投稿者:nobu [02/7/09(火)19:55分]

何時も参考にさせていただいています。

「VBから他EXEのF10を押す」と言うことを
やりたいのですが、幾つかのWEBを探しましたが
見つけだせませんでした。
他EXE間とのやりとり、SendMessage 等などは
なかなか理解出来なくています。

Win98 VB6 SP5 です。

No.5222 RE:vbでエクセルのグラフ操作  投稿者:花ちゃん [02/7/09(火)18:10分]

ここのExcel&Word関係の [VBからExcel及びWordを操作する時の注意事項(最初に必ずお読み下さい)]

を見て下さい

No.5221 vbでエクセルのグラフ操作  投稿者:sasaki [02/7/09(火)17:55分]


vbでエクセルのグラフを操作します。

すでに表示されているグラフの領域を変更したいのですがエラーが出ます。
マクロで調べたコードの間違いを教えてください。

objbook.worksheets(1).ChartObjects("グラフ 2").SetSourceData source:=Sheets("1").Range("a1:c3")


No.5220 ACCESS  投稿者:まり [02/7/09(火)17:30分]


VBでACCESSのデータ管理を考えています。
フィールドに時間割を作りたいのですが、予約された時間を2度使わない方法を教えてください。
つまりデータの重複になるのかな?
どなたたか教えてください。

No.5219 アクセスの件  投稿者:かずや [02/7/09(火)17:29分]

 質問ですが、

> ACCESSでクエリのAというのをDAOを使って、RECORDSETで
> テーブルを操作するのと同じような事をしたくて、
> ヘルプの使用例を見ながらいろいろやってみたのですが、
> 上手くいきません。
> 試したロジックは恥ずかしくて、書き込めませんが、
> ロジック例を教えていただけませんでしょうか。

No.5218 Re:ツリービューの先頭に表示されたノードを取得したい  投稿者:のり [02/7/09(火)9:54分]

NAO★さま、分かりやすくレスしていただいて、

ありがとうございました。

教えていただいた手法でやってみます。

No.5217 RE:画像の表示ができましたが  投稿者:花ちゃん [02/7/08(月)23:16分]


>問題が表示される→キーを押すまでの時間を計る→y or nを押すとそれぞれのキーに対応した
>命令を動かせるようにしたいと考えています。
失礼ですが、お望みのような事はAPIを使用しキーボードのキーの入力を監視しなければならないので
結構難しいと思います。
簡便方として、フォームの KeyPreview プロパティを True に設定して Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyY Then
MsgBox "画像を表示する処理"
ElseIf KeyCode = vbKeyN Then
MsgBox "画像を消す処理"
End If
End Sub
こんな感じで取得できるかと思います。 但し、フォームがアクティブでないと取得出来ません。

>キー操作だけでなく、時間の数え方も教えていただければ幸いです。
こちらは、左のサンプルにあるかと思いますので探して下さい。
(ストップウォッチ色々 timeGetTime API 他使用 ) あたりが参考になるかと思います。


No.5216 画像の表示ができましたが・・・・  投稿者:rihati [02/7/08(月)22:44分]

先日言われたとおりに、してみたところ画像の貼り付けに成功しました。

しかし、キーボードのyとn押す設定の仕方が今ひとつわかりません。

やりたい操作は、
問題が表示される→キーを押すまでの時間を計る→y or nを押すと
それぞれのキーに対応した命令を動かせるようにしたいと考えています。


キー操作だけでなく、時間の数え方も教えていただければ幸いです。
よろしくお願いします。

No.5215 Re:ツリービューの先頭に表示されたノードを取得したい  投稿者:NAO★ [02/7/08(月)17:39分]

変則的かも知れませんが、HitTest を使えば調べられます。

あらかじめTreeView1_MouseUp()につかっているルーチンをつかって
それぞれの階層が一番上に来ているときの位置を調べておき、
その数値を使ってノードを調べています。
環境が変わると値が違ってくる可能性があります。

Private myNode As Node
Private Sub Command1_Click()
On Error GoTo Err_HitTest
myNode = TreeView1.HitTest(855, 75) '1段目の階層の位置
Debug.Print "node -- " & myNode.Text
myNode = TreeView1.HitTest(1455, 75) '2段目の階層の位置
Debug.Print "node -- " & myNode.Text
Exit Sub
Err_HitTest:
Resume Next
End Sub

Private Sub Form_Load()
' テスト用
Dim i As Integer
Dim j As Integer
Form1.Visible = True
For i = 1 To 5
Set myNode = TreeView1.Nodes.Add(, , CStr(i) & "-0", "node" & CStr(i))
For j = 1 To 5
Set myNode = TreeView1.Nodes.Add(CStr(i) & "-0", tvwChild, CStr(i) _
                                  & "-" & CStr(j), "node" & CStr(i) & "-" & CStr(j))

Next j, i
End Sub

Private Sub TreeView1_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)
'ノードをクリックした位置を調べるためのルーチン
On Error GoTo Err_HitTest
myNode = TreeView1.HitTest(x, y)
Debug.Print "node -- " & myNode.Text
Debug.Print "x,y -- " & x & "," & y
Err_HitTest:
End Sub

No.5214 ツリービューの先頭に表示されたノードを取得したい  投稿者:匿名 [02/7/08(月)10:08分]

はじめて書き込みさせていただきます。

ツリービューで、スクロールやノードを開閉した後、
画面上の先頭のノード(キー)を取得したいのですが、
プロパティあるいは、APIで取得できる方法は
あるでしょうか?
よろしくお願いいたします。

No.5213 RE:picture内へのshape表示について  投稿者:花ちゃん [02/7/07(日)23:41分]

デザイン時にピクチャーボックスに貼り付けて下さい。



三角形は設定できません。Line で表示しましょう。

No.5212 RE:picture内へのshape表示について  投稿者:梅雨 [02/7/07(日)19:37分]

こんばんは。以前教えていただいたimageの貼り付けのように

同じような形式で色々試してるんですけどエラーになってしまいます・・・。

Private Sub Command1_Click()
Shape1.shape = LoadShape(1)
End Sub

LoadShape(1)の"1"は、正方形を選択してます・・。
調べてみたところshapeプロパティにも3角形ありませんでした。
不可能でしょうか。
よろしくお願いいたします。

No.5211 re:画像表示、キー入力について質問  投稿者:花ちゃん [02/7/07(日)17:18分]

まず、左のメニューの グラフィック関係を参考に表示したり、消したり

して見て下さい。
Comand ボタンに Y と N のアクセスキーを設定して下さい。

キーでの設定はその後にしませんか?

No.5210 画像表示、キー入力について質問  投稿者:rihati [02/7/07(日)16:26分]

Comand1を押すとPicture1に画像を表示(ファイルの種類はjpgかbmp)させるようにしたいのですが、

どうしたらよいでしょうか?
またComand1をクリックする変わりに、キーボードのyやnを押すと同様の作業が
できるようにしたいのですが、どうしたらよいでしょうか?

No.5209 RE:picture内へのshape表示について  投稿者:花ちゃん [02/7/07(日)15:37分]

>commandボタンを押して、pictureの中にshapeの四角形を表示

>させたいんですけど可能でしょうか。
可能かどうか shape を貼り付けて見て下さい。

>また、同じように三角形を表示させる方法もあるのでしょうか。
shape コントロールの shape プロパティを見て下さい。

それで解らない事があれば再度質問して下さい。

No.5208 picture内へのshape表示について。  投稿者:梅雨 [02/7/07(日)11:31分]

こんにちは。

commandボタンを押して、pictureの中にshapeの四角形を表示
させたいんですけど可能でしょうか。
また、同じように三角形を表示させる方法もあるのでしょうか。
よろしくお願い致します。

No.5207 できました♪  投稿者:シモモ [02/7/05(金)15:29分]

お答えアリガトウございます。

頑張って、いろいろできるように頑張ります。

No.5206 DEBUG停止時の処理  投稿者:Lantern [02/7/05(金)13:16分]

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


VBで作成中のプログラムをデバックで実行し
デバック停止した際に取得できるイベントは
ないでしょうか?(Endステートの取得?)

ハードウェアを操作するプログラムの為、
終了時に特定の処理を行いたいのですが、
デバック中に途中で止める場合に、今は、
終了用のコードまで移動したり、イミディエイトで
コールしたりしています。

なにか良い方法がありましたら教えてください。

WIN2000 SP2/VB6.0 SP5


No.5205 RE:ToolTipTextについて  投稿者:花ちゃん [02/7/04(木)17:19分]

ご迷惑をおかけしてすみません。説明が抜けておりました。

TTTShowFlag は ToolTipTextを表示するかしないかのフラグ用の変数です。

Private Sub Command1_Click()
'Private TTTShowFlag As Boolean '宣言セクションに記入して下さい
'フラグの True & False の設定
TTTShowFlag = Not TTTShowFlag
End Sub

No.5204 複数ファイルの読み込み  投稿者:dare [02/7/04(木)17:17分]

複数のファイル名を配列に格納して、

そのファイルを一度に全て読み込みたいのですが
どうすればいいのですか?
教えてください。

No.5203 ToolTipTextについて  投稿者:シモモ [02/7/04(木)17:09分]

はじめまして。シモモと申します。

業務でVB(MSFlexGrid)-ACCESS(mdb)を使うことになって勉強を始めたばかりなのですが
MSFlexGrid関係の
「各セル個別にToolTipTextを表示する」で
4行目の
If TTTShow = True Then
と言う記述があるのですけど
TTTShowとは、オブジェクト名なのでしょうか?
始めたばかりで、理解力が無いのかもしれませんが、ご指導のほどよろしくお願いします。
過去ログは一読しています(見をとしているかも・・・。)

No.5202 RE:MSFlexGridについて  投稿者:NAO★ [02/7/04(木)15:48分]

うちでは再現しないですねぇ

Private Sub MSFlexGrid1_Click()
With MSFlexGrid1
.RemoveItem .Row
End With
End Sub
とかで試してみたのですが

.RemoveItem .Row -1

とかにしたら、固定行は削除できませんってエラー出るし。

No.5201 RE:DBgridの検索  投稿者:T.t  [02/7/04(木)15:42分]

ありがとうございました。

先程の通りで出来たのですが、データ量を増やした時にDBGridのウィンドウサイズを
広げないと検索できません。

サイズが小さいをスクロールされた時に、表示された先頭がレコードの1番と再認識されてしまう為。
なにか方法はないでしょうか?

玄関へお回り下さい。 前のログ 次のログ


VBレスキュー(花ちゃん)
Visual Basic6.0  VB6.0