VBプログラマ質問スレ(6.0以前) Part44

このエントリーをはてなブックマークに追加
846デフォルトの名無しさん
DoCmd.TransferText acImportDelim, ,"インポートデータ", _
"C:\Documents and Settings\デスクトップ\ファイル名.csv"


ACCESSSでボタンを作ってこういうのをあてはめたら、
一応押すごとにインポートされるものは出来たんだけど、
ファイル名のところなんだけど、同じフォルダ内にある全ての
CSVをインポート処理してくれるようにならないかな?

欲をいえば、
いくつファイルをインポートしたかメッセージ出てくると、なおいいね。

4つのファイルをインポートしました。

とか
847デフォルトの名無しさん:2005/12/03(土) 01:39:42

Dim lstrFile As String

Text1.Text = ""
lstrFile = Dir("C:\Documents and Settings\Makoto\デスクトップ\適性テスト\*.csv")

Do Until lstrFile = ""
Text1.Text = Text1.Text & lstrFile & vbCrLf
lstrFile = Dir()
DoCmd.TransferText acImportDelim, , "インポートデータ", _
"C:\Documents and Settings\Makoto\デスクトップ\適性テスト\$lstrFile$.csv"
Loop


MsgBox "インポートしました!"



↑これでは出来ない。なんでだー
848デフォルトの名無しさん:2005/12/03(土) 02:18:07
>>847
Dim lstrDir As String, lstrFile As String
Dim nCount As Integer

Text1.Text = ""
lstrDir = "C:\Documents and Settings\Makoto\デスクトップ\適性テスト\"
lstrFile = Dir(lstrDir & "*.csv")

Do Until lstrFile = ""
Text1.Text = Text1.Text & lstrFile & vbCrLf
nCount = nCount + 1
lstrFile = Dir()
DoCmd.TransferText acImportDelim, , "インポートデータ", lstrDir & lstrFile
Loop

MsgBox nCount & "個のファイルをインポートしました。"
849デフォルトの名無しさん:2005/12/03(土) 03:44:41
WEBサーバの自作でいろいろ苦労してるのですが

そういう人は他に居ない?
850デフォルトの名無しさん:2005/12/03(土) 07:26:54
>>848
Accessで作って欲しいものある?
http://pc8.2ch.net/test/read.cgi/db/1116568169/809,836,837,838

バカマルチにレスするなよ
851デフォルトの名無しさん:2005/12/03(土) 08:40:10
VB6.0のプロジェクトファイルから
フォーム数やステップ数を出力してくれるような
アプリケーションはないでしょうか?
できればフリーソフトなどあればうれしいのですが・・・
852デフォルトの名無しさん:2005/12/03(土) 08:59:53
>>851
自分で作れよ
プロジェクトファイルはテキストなんだからさ
853デフォルトの名無しさん:2005/12/03(土) 09:02:26
>>852
vectorにいろいろありまいたので試して見ます。
ありがとうございました。
854デフォルトの名無しさん:2005/12/03(土) 10:53:39
>>849
普通の人はVB6でWEBサーバーを作ったりしないので居ない
855デフォルトの名無しさん:2005/12/03(土) 12:53:28
>>854
昔DDJな何かでVB5.0使ってWebサーバ作ったという記事を見た事がある
856デフォルトの名無しさん:2005/12/03(土) 15:48:25
>>848
ありがとうございました
857デフォルトの名無しさん:2005/12/03(土) 15:52:09
>>848
ただ

変数を宣言したあとの

Text1.Text = ""

が黄色になって「オブジェクトが必要です」
と出てくるのですが。。。。
858デフォルトの名無しさん:2005/12/03(土) 15:52:24
>>857
死ね
859デフォルトの名無しさん:2005/12/03(土) 16:05:23
3行目のText1.Text = "" と7行目のText1.Text = Text1.Text & lstrFile & vbCrLf は要らないだろ。
860デフォルトの名無しさん:2005/12/03(土) 16:06:31
>>857
Text1っていうオブジェクトが無いんだろ
キミの出した情報じゃそれしかわからんよ
861デフォルトの名無しさん:2005/12/03(土) 16:11:32
>>860
お返事ありがとうございます。
たった今、フォームにテキスト1を追加したんですが、やはりできませぬ。。。
862デフォルトの名無しさん:2005/12/03(土) 16:18:41
こいつ本当に真性バカだな。
863デフォルトの名無しさん:2005/12/03(土) 16:19:24
>>861
標準モジュールに書いていたってオチ
864デフォルトの名無しさん:2005/12/03(土) 16:19:29
フォームにテキストボックスを追加して、それのプロパティで名前の部分をtext1にしたんですが、
今度は「コントロールがフォーカスを取得していないときに、コントロールのプロパティまたはメソッドは
参照することができません:エラー2185」と出てしまいました
865デフォルトの名無しさん:2005/12/03(土) 16:20:42
超絶バカ

817 名前:NAME IS NULL[] 投稿日:2005/12/02(金) 21:23:47 ID:FRlIojdR
>>816
できれば、その前に、1つ教えてほしいことがある
access2002からモジュールの新規作成選択したときさ、
普通はVBのフォームとか、ツールボックス出るじゃん。
あれの出し方だけ教えて
866デフォルトの名無しさん:2005/12/03(土) 16:23:14
なんとでもいってもらって、結構なので正直、ドがつく初心者の俺でも分かるくらいの
説明で教えてほしい。。。。。。
867デフォルトの名無しさん:2005/12/03(土) 16:24:18






      A c c e s s か よ !





 
868デフォルトの名無しさん:2005/12/03(土) 16:24:29
お前が勉強してこい
869デフォルトの名無しさん:2005/12/03(土) 16:26:24
848さん以外に分かる人いないってこと??
870デフォルトの名無しさん:2005/12/03(土) 16:27:56
だれかーーーーーーーーわかりませんかーーーーーーーーーーーーー
871デフォルトの名無しさん:2005/12/03(土) 16:30:26
誰が質問して 何の回答求めてるのか分からん 名前くらい入れろ
環境教えろ VBなのかアクセスなのかエクセルなのか
一番最初に質問したレス番号教えろ
872デフォルトの名無しさん:2005/12/03(土) 16:32:38
809 名前:NAME IS NULL[] 投稿日:2005/12/02(金) 17:35:25 ID:azKk0wjH
CSV(カンマ区切りで)、1行目だけに左上詰めから15項目だけあるファイルを、
次々にアクセスのデータベースに追加していく形のものを作ってほしいです。
可能ならば、ボタンをポチっと押しただけで追加して、追加が終わったら、
その抽出したCSVファイルを削除しますか?とかで削除できたらサイコー!

812 名前:NAME IS NULL[] 投稿日:2005/12/02(金) 19:11:57 ID:azKk0wjH
つか、ACCESSのモジュール作成からVBたちあげても、
デザインビューのフォームとかツールボックスが出ない!!!
なんでだよ!!

817 名前:NAME IS NULL[] 投稿日:2005/12/02(金) 21:23:47 ID:FRlIojdR
>>816
できれば、その前に、1つ教えてほしいことがある
access2002からモジュールの新規作成選択したときさ、
普通はVBのフォームとか、ツールボックス出るじゃん。
あれの出し方だけ教えて

822 名前:NAME IS NULL[] 投稿日:2005/12/02(金) 21:50:27 ID:FRlIojdR
>>820
ならんでるよ。そこのモジュールから新規作成してるんだけどなー

826 名前:NAME IS NULL[] 投稿日:2005/12/02(金) 21:56:27 ID:FRlIojdR
フォームあるよー

アクセスでは、ボタン作ってそれをクリックしたら簡単にcsvからaccessに読み込むのできないの?
873accessマン:2005/12/03(土) 16:33:33
私が質問していました。質問内容は>>846にあります。

環境はaccess2003です。ドがつくほどプログラムのことは
分からないんです。すいません
874デフォルトの名無しさん:2005/12/03(土) 16:33:35
837 名前:NAME IS NULL[] 投稿日:2005/12/02(金) 23:51:45 ID:FRlIojdR
DoCmd.TransferText acImportDelim, ,"インポートデータ", _
"C:\Documents and Settings\デスクトップ\ファイル名.csv"


ACCESSSでボタンを作ってこういうのをあてはめたら、
一応押すごとにインポートされるものは出来たんだけど、
ファイル名のところなんだけど、同じフォルダ内にある全ての
CSVをインポート処理してくれるようにならないかな?

838 名前:NAME IS NULL[] 投稿日:2005/12/03(土) 00:01:07 ID:2/RezQHy
欲をいえば、
いくつファイルをインポートしたかメッセージ出てくると、なおいいね。

4つのファイルをインポートしました。

とか

841 名前:NAME IS NULL[sage] 投稿日:2005/12/03(土) 14:54:56 ID:???
分かる人いるなら教えてよ

844 名前:NAME IS NULL[] 投稿日:2005/12/03(土) 15:28:15 ID:2/RezQHy
DoCmdの引数にsFileを渡す方法がわからない
875デフォルトの名無しさん:2005/12/03(土) 16:34:19
>>872,>>874
まとめ乙!
876デフォルトの名無しさん:2005/12/03(土) 16:34:53
どう見てもAccess初心者でVBのコード以前の問題です。
本当にありがとうございました。
877デフォルトの名無しさん:2005/12/03(土) 16:36:20
835 名前:NAME IS NULL[] 投稿日:2005/12/02(金) 22:26:41 ID:FRlIojdR
今花より団子見てるから、あとでね

836 名前:NAME IS NULL[] 投稿日:2005/12/02(金) 23:00:48 ID:FRlIojdR
ただいま、つか出来上がったw
878デフォルトの名無しさん:2005/12/03(土) 16:36:45
819 名前:NAME IS NULL[] 投稿日:2005/12/02(金) 21:38:17 ID:FRlIojdR
>>818
おまえはヴァカ?
879デフォルトの名無しさん:2005/12/03(土) 16:38:02
ここのスレ見てるとプログラマーのだいたいの性格わかるなw
880デフォルトの名無しさん:2005/12/03(土) 16:39:21
>>861
長くなってもいいから何をどうしてどうなったのか詳しく書け
881デフォルトの名無しさん:2005/12/03(土) 16:40:48
死ねばいいのに
882accessマン:2005/12/03(土) 16:46:42
>>880

はい。ありがとうございます。

まずACCESSのフォームの新規作成で コマンドボタンを1つフォームに追加しました。

そのコマンドボタンの右クリックしてイベントのビルドでコードビルダを選択し、

Private Sub コマンド0_Click()  と End Sub の間に >>848様の

>Dim lstrDir As String, lstrFile As String
>Dim nCount As Integer
>
>Text1.Text = ""
>lstrDir = "C:\Documents and Settings\Makoto\デスクトップ\適性テスト\"
>lstrFile = Dir(lstrDir & "*.csv")
>
>Do Until lstrFile = ""
>Text1.Text = Text1.Text & lstrFile & vbCrLf
>nCount = nCount + 1
>lstrFile = Dir()
>DoCmd.TransferText acImportDelim, , "インポートデータ", lstrDir & lstrFile
>Loop

MsgBox nCount & "個のファイルをインポートしました。"


を追記したんですが、デバッグ画面で text1.Text=""の行が黄色くなっていたので
またAccessのフォーム作成画面に戻りテキストボックスを追加して、
プロパティからtext1という名前に変えて、実行すると今度は
「コントロールがフォーカスを取得していないときに、コントロールのプロパティまたはメソッドは
参照することができません:エラー2185」と出てしまいました
883デフォルトの名無しさん:2005/12/03(土) 16:48:12
>>882
いいから、おまえは死ね
884デフォルトの名無しさん:2005/12/03(土) 16:48:50
>>882
お前さ、まずAccessの使い方から学べよアホ
Me付けなきゃどのテキストボックスか分からないだろ死ね
885デフォルトの名無しさん:2005/12/03(土) 16:50:31
Me??
886デフォルトの名無しさん:2005/12/03(土) 16:51:11
ちんこうんこまんこちんこうんこまんこちんこうんこまんこ
ちんこうんこまんこちんこうんこまんこちんこうんこまんこ
ちんこうんこまんこちんこうんこまんこちんこうんこまんこ
ちんこうんこまんこちんこうんこまんこちんこうんこまんこ
ちんこうんこまんこちんこうんこまんこちんこうんこまんこ
ちんこうんこまんこちんこうんこまんこちんこうんこまんこ
ちんこうんこまんこちんこうんこまんこちんこうんこまんこ
ちんこうんこまんこちんこうんこまんこちんこうんこまんこ
ちんこうんこまんこちんこうんこまんこちんこうんこまんこ
ちんこうんこまんこちんこうんこまんこちんこうんこまんこ
ちんこうんこまんこちんこうんこまんこちんこうんこまんこ
ちんこうんこまんこちんこうんこまんこちんこうんこまんこ
887デフォルトの名無しさん:2005/12/03(土) 16:54:10
VB使ったことないんだけどDL方法からアプリ開発まで全部俺に教えてwwwwwwwwwwwwwwwwww
888デフォルトの名無しさん:2005/12/03(土) 16:54:51
>>887
いいよ
889デフォルトの名無しさん:2005/12/03(土) 16:55:21
早く教えろよカス
890888:2005/12/03(土) 16:57:15
>>889
いやだ
891デフォルトの名無しさん:2005/12/03(土) 16:58:29
うそつき・゚・(ノД`)・゚・
892デフォルトの名無しさん:2005/12/03(土) 16:59:03
マルチしただけで、ここまで叩かれた奴はじめて見たw
893デフォルトの名無しさん:2005/12/03(土) 17:00:06
マルチだからじゃなくバカだから叩かれているだけだろ
894デフォルトの名無しさん:2005/12/03(土) 17:01:38
VBプログラマってバカに厳しいんだなw
まぁ、なぜか分かる気もするがw
895デフォルトの名無しさん:2005/12/03(土) 18:51:26
マルチでバカだからだな
896デフォルトの名無しさん:2005/12/03(土) 18:54:50
合わせ技で一本か
897デフォルトの名無しさん:2005/12/03(土) 19:14:12
フォルダ内の全てのファイルにある処理をするときはどのような構文を書けばいいですか?
898デフォルトの名無しさん:2005/12/03(土) 19:15:13
フォルダ内のファイルを列挙して
全部に処理すればいい
899デフォルトの名無しさん:2005/12/03(土) 19:55:05
質問です。
 str = "123123123……"と言う文字列があり、先頭から5文字目を"0"に変更したいとします。
現在は、
 x=mid(str,1,4) & "0" & mid(str,6)
とやっているのですが、他にスマートな関数が用意されていたら教えてください。
900デフォルトの名無しさん:2005/12/03(土) 20:06:06
なかなかスマートじゃないか。
901accessマン:2005/12/03(土) 20:06:09
試行錯誤して出来たぜ!w
902デフォルトの名無しさん:2005/12/03(土) 20:09:56
>>889
mid(s,5,1)="0"
でいいよ。
903902:2005/12/03(土) 20:11:53
>>899だた
904デフォルトの名無しさん:2005/12/03(土) 20:14:56
Mid関数知ってるのにMidステートメント知らない奴が居るのかよ
905899:2005/12/03(土) 20:26:41
ありがとうございました。orz
906デフォルトの名無しさん:2005/12/03(土) 21:01:14
 access側のフィールド名を自分で色々とつけていた場合

DoCmd.TransferText acImportDelim を使うときは、どういうふうにすればいいか分かる香具師いる?
フィールド名をつけてなきゃ、スムーズにいくんだけどなぁ
907デフォルトの名無しさん:2005/12/03(土) 21:03:12
>>906
Accessで作って欲しいものある?
http://pc8.2ch.net/test/read.cgi/db/1116568169/853

お帰りバカaccessマン
908デフォルトの名無しさん:2005/12/03(土) 21:04:19
ただいまw
909デフォルトの名無しさん:2005/12/03(土) 21:06:08
試行錯誤して出来たぜ!w
910848:2005/12/03(土) 21:10:40
なんか漏れのせいで微妙に荒れてしまったな。スマソ。

>>850
マルチとは知らずorz
911デフォルトの名無しさん:2005/12/03(土) 21:13:42
>>910
おまえのせいでだいぶ完成したぜw
912デフォルトの名無しさん:2005/12/03(土) 21:13:58
849 名前:NAME IS NULL[] 投稿日:2005/12/03(土) 20:08:55 ID:2/RezQHy
>>848
おまえがしねよw
はっはははは、できあがったからには、もうどうでもいいしw
913デフォルトの名無しさん:2005/12/03(土) 21:14:33
914デフォルトの名無しさん:2005/12/03(土) 21:18:06
できたw
915デフォルトの名無しさん:2005/12/03(土) 21:37:22
野ブタをプロデュースみてて ひさびさにドラマにハマりそうになった。
このクソ女め
916デフォルトの名無しさん:2005/12/04(日) 00:01:15
質問です。
VB6でコンパイルエラー「メモリが不足しています」が発生しています。
このプロジェクトはソース量が巨大で、その一部を除くとコンパイルできるようになります。
変数の総数、コード量など何らかのコンパイラの制限に引っかかっているのでしょうか?
誰かご存知の方教えて下さい。
917デフォルトの名無しさん:2005/12/04(日) 00:04:10
PCにメモリどれくらい積んでるんだ?
918916:2005/12/04(日) 00:11:35
512MBです
919デフォルトの名無しさん:2005/12/04(日) 00:29:33
OSがXPだとしたら開発に使うには足りないな
2kだとしてもギリギリか
920デフォルトの名無しさん:2005/12/04(日) 00:47:53
>>919
余裕だろ。
921デフォルトの名無しさん:2005/12/04(日) 01:00:01
メモリ64kbでコンパイラ動かしてた時代は遠くなったな
922デフォルトの名無しさん:2005/12/04(日) 01:59:55
>>916
プロジェクトファイルを右クリックしてコンパイル
923デフォルトの名無しさん:2005/12/04(日) 10:34:18
逆コンパイルはどのツールが良いのでしょうか?
924デフォルトの名無しさん:2005/12/04(日) 10:40:29
>>923
細木数子にでも聞け
925デフォルトの名無しさん:2005/12/04(日) 18:17:45
プログラム暦半年の若造です。VB6 SP5でテキストファイルに書かれた文章を
いじくるプログラムをつくっているのですが
For i = 1 to Len(String)
If Mid(String, i, 1) = """ then
と二重引用符を見つけたら処理をするというIf文を作りたいのですが
駄目っぽいのは目に見えてるのですがもしこういうのを作るには
文字コードやバイナリ状態のをIf文で処理させたほうがいいのでしょうか?
ものすごく馬鹿なことしてるように見えるかもしれませんがお知恵拝借よろしくお願いします。
926デフォルトの名無しさん:2005/12/04(日) 18:29:21
とりあえず"""ではなく""""な
あとMidではなく…(以下略
927デフォルトの名無しさん:2005/12/05(月) 01:21:13
>>925
根本的な話としてファイル内の文字列をいじくるプログラムは
やりたい処理によって1文字ずつ処理していく方法がよかったり
文字列として処理していく方法がよかったりする。
また、バイナリ形式のまま処理した方が良い場合もある。

要するにどういじくりたいのか解らないのでどうしたら良いのかは回答できない
928デフォルトの名無しさん:2005/12/05(月) 06:47:23
変数名Stringは使えない
929デフォルトの名無しさん:2005/12/05(月) 07:15:23
>>928
いや、さすがにそれは書き込むときに変えてるんだろwwwwwwwwwwwwwww
930デフォルトの名無しさん:2005/12/05(月) 11:22:26
Call Shell("rundll32.exe shell32.dll,Control_RunDLL", vbNormalFocus)
この内容でコントロールパネルは起動させることができたのですが、
その他上記の"Contorol"を"Mycomputer"や"Mynetwork"に変えてもマイコンピューターやマイネットワークなどを起動させることができません。
どの用に変更すればいいか教えていただけませんか?
931デフォルトの名無しさん:2005/12/05(月) 11:55:26
>>930
explorer /root,,::{20D04FE0-3AEA-1069-A2D8-08002B30309D}
explorer /root,,::{208D2C60-3AEA-1069-A2D7-08002B30309D}
932930:2005/12/05(月) 14:30:04
>>931
Private Sub Command1_Click()
explorer /root,,::{20D04FE0-3AEA-1069-A2D8-08002B30309D}
end sub

これに何が足りないか、もう少し詳しく教えていただけませんか?
933デフォルトの名無しさん:2005/12/05(月) 14:44:33
ちなみに列挙型だと
Enum e
  [String]
End Enum
っていうふうに書いて使えたりする。
934デフォルトの名無しさん:2005/12/05(月) 14:46:35
>>932
足りないのは頭だと思いますが、
まずはぐぐれ
935930:2005/12/05(月) 14:50:48
explorer /root,,::{20D04FE0-3AEA-1069-A2D8-08002B30309D}
ぐぐってもコマンドプロンプトで書いたら起動できるやりかたしかでてこねぇよ!!!
VBでどうやるんだよ!?
936デフォルトの名無しさん:2005/12/05(月) 14:57:12
>>935
Call Shell(文字列) って何やってるか知ってる?
937930:2005/12/05(月) 15:06:19
でけた!!!!
>>936
マジサンクス!!!!

ホントありがとー(^^)/
938デフォルトの名無しさん:2005/12/05(月) 15:32:04
930の
すごい
バカ
939デフォルトの名無しさん:2005/12/05(月) 15:32:51
>>938
タコ
940デフォルトの名無しさん:2005/12/05(月) 15:51:23
ん? Accessマン帰ってきた?
941925:2005/12/05(月) 16:17:08
>>927
とりあえずAscをつかって文字コードで判別する
やり方で自己解決しちゃいましたが
ファイル内の書式が
[設定1]
AAAAA = "あああああ"
BBBBB = "びびびびび"
のようになってて"〜"間の文字を取得したいんです。
For文で1文字ずつ移動させて"がある場合だけ文字を
VB内の変数に記録し続けるって感じのアルゴリズムを考えて
たのですが今の俺じゃ効率悪い方法しか思いつかない・・・
orz
942デフォルトの名無しさん:2005/12/05(月) 16:29:05
つ[正規表現]
943デフォルトの名無しさん:2005/12/05(月) 16:57:57
ISNUMERIC関数で、4d9などの文字列がTRUEで返って来るんですが…

何故?
944デフォルトの名無しさん:2005/12/05(月) 17:13:38
>>943
ヒント:16進数

対処法はWebに腐るほど転がってる
945デフォルトの名無しさん:2005/12/05(月) 17:18:19
>>941
文字列の書式によるが
InStr とか Replace が使えそう。
946945:2005/12/05(月) 17:27:28
>>941
iniファイル形式だろうから
GetPrivateProfileString() API を使う方法もある。
947デフォルトの名無しさん:2005/12/05(月) 18:53:38
質問なんですけど、フォームにエクセルのシートを貼り付けて、右クリックのショートカットメニューを消したいんですけど、知ってる人がいたらおしえてください。
948925:2005/12/05(月) 22:18:42
>>946

ありがとうございます。
GetPrivateProfileString()でいけるようになりました。
iniファイルだってことすっかり忘れてた・・・。orz
逝ってきます。
949デフォルトの名無しさん:2005/12/05(月) 22:51:56
>>947
マルチ死ね
950デフォルトの名無しさん:2005/12/06(火) 01:54:54
>>947
Office2000・XPなんかのDeveloperEditionについてきたVBAの説明マニュアルを読め
まずはそれからだ
951デフォルトの名無しさん:2005/12/06(火) 15:11:59
ソースの改修をしているのですが、
定義未宣言の変数が大量にあって困っています。

OptionExplicit記述をして一つ一つ潰すにしてもあまりに量が多いので
せめて一覧出力して修正量がどれくらいか知りたいのですが、
なにかいい方法はありませんか?
952951:2005/12/06(火) 15:13:57
書き忘れたので追記・・・

OSはWinXPPro
VB6+SP6です。どうぞよろしくお願いします(´・ω・)
953デフォルトの名無しさん:2005/12/06(火) 15:29:35
がんばって下さい。
954デフォルトの名無しさん:2005/12/06(火) 15:53:29
OptionExplicitを宣言して、コンパイルエラーで潰すのが一番確実で正しいと思うが。
修正量なんて知らないほうが良いんじゃないの?w
全ロジック見直しですっていって工数見積もれば。
955デフォルトの名無しさん:2005/12/06(火) 18:29:36
今、VB6.0でエクセルの帳票を作っているのですが、
コードが変わることによりブレイクして地域名が変わり
改ページの処理をするようにしなくてはいけないんですけれど、
方法がわかりません。

地域名  福岡
---------------------------------------
コード  地域名
---------------------------------------
0041   福岡


(現状)コードが42になったらブレイクして佐賀に変わる
改ページの処理がわかりません。

地域名  福岡
---------------------------------------
コード  地域名
---------------------------------------
0041   福岡
0042   佐賀


よろしくお願いします。
956デフォルトの名無しさん:2005/12/06(火) 18:30:25
質問なんですけど、フォームにエクセルのシートを貼り付けて、右クリックのショートカットメニューを消したいんですけど、知ってる人がいたらおしえてください。
957デフォルトの名無しさん:2005/12/06(火) 18:49:50
マルチ帰れ
958デフォルトの名無しさん:2005/12/06(火) 19:15:48
>>951
VB.NETへのマイグレーションツールを使う
ちなみに、関係ないエラーも数万〜数十万件のオーダーででると思うから泣かない様に
959デフォルトの名無しさん:2005/12/07(水) 09:38:59
>>955
EXCELでの改ページの方法がわからないの?
改ページのタイミングを検出する方法がわからないの?
960デフォルトの名無しさん:2005/12/07(水) 09:57:59
Excelでマクロ組む場合の基本。
やりたいことをマクロの記録でVBAに吐かせる。
あとはその選択セルとかを変えるだけ。
961デフォルトの名無しさん:2005/12/07(水) 10:29:02
データコンボコントロールの使い方について教えてください。

Form_loadでDBにコネクションを貼り、unloadで切断するアプリケーションを作っています。
このアプリにADODCとデータコンボコントロールを追加しました。
ADODCの接続文字列にはForm_loadで用いるものと同じものを使っています。
データコンボコントロールはこのADODCをRowSourceとしています。

その結果、動作には問題無いのですがFormの起動がえらくもっさりしてしまいました。
余計なDB接続を作ってしまっただと思います。

Form_loadで生成したコネクションオブジェクトを流用することはできないのでしょうか?
962デフォルトの名無しさん:2005/12/07(水) 10:32:47
質問です。ActiveX DLLを作成しているのですが
'Module1
Public Type TestStruct1'ユーザー定義
strIp As String
strUser As String
strPass As String
End Type
'Class1
Public GetHostInfo(stDisk As String) As TestStruct1
End Function

でコンパイルエラーが出ます。DLLで持つ共通関数の構造体を
外部モジュールから構造体を丸々参照できるようにしたいです
963デフォルトの名無しさん:2005/12/07(水) 10:34:17
>>959
改ページのタイミングを検出する方法がわからないのです。

もし、よろしければご教授ください。
964デフォルトの名無しさん:2005/12/07(水) 11:57:50
965デフォルトの名無しさん:2005/12/07(水) 12:08:23
>>962
Public GetHostInfo(stDisk As String) As TestStruct1

     ↓

Public Function GetHostInfo(stDisk As String) As TestStruct1
966デフォルトの名無しさん:2005/12/07(水) 12:20:14
定数の型指定についてなのですが、
Web上のサンプルを見ると

Private Const HOGE As Long = &H1

と、型を指定している場合と

Private Const HOGE = &H1

と、型を指定していない場合があり、
型を指定しない方が多いように見受けられますが、
逆に変数では型を指定していないものはほとんど見あたりません。
なぜ変数はほとんどの場合型を指定しているのに
定数だと型を指定しないことが多いのですか?
967デフォルトの名無しさん:2005/12/07(水) 12:23:58
>>966
変数で型の指定を省略するとVariantになる。
けれどConstでは定数の値から適当な型を選んでくれるはず。

さらに、たしか昔はConstでは型を指定できなかったような気もする。
968デフォルトの名無しさん:2005/12/07(水) 14:12:22
>>965
すみませんFunction は漏れていたのですがFunction追加しても
改善されないようです。
もし駄目な場合はEXE化してcommand()で引数を渡すよう
思索してるんですが、これまた、引数としては一行の文字列になってまして
この引数をそれぞれの型で個別にやりとりさせる方法ってありますか?
969デフォルトの名無しさん:2005/12/07(水) 14:25:16
>>968
TestStruct1もクラスにしてしまえばどうだ。
もちろんプロパティ使えばTypeと見た目は変わらないように作れるだろ。
970デフォルトの名無しさん:2005/12/07(水) 15:35:26
>>962
Module1に書いてあるものを、Class2に書いて。
Class2はプロパティInstancing=6(GlobalMultiUse)で。
971デフォルトの名無しさん:2005/12/07(水) 16:02:13
テンプレ議論はあだ〜?チンッチンッ☆(AA省略)
972デフォルトの名無しさん:2005/12/07(水) 17:18:31
VBで作ったexeファイルにフォントの埋め込みをしたいと思いますが、ムリでしょうか?
973デフォルトの名無しさん:2005/12/07(水) 20:03:24
>>972
埋め込みって、フォントファイル?文字のBMP?埋め込みってコンパイル時?後から?
974デフォルトの名無しさん:2005/12/07(水) 20:14:38
>>972
可能です。
975デフォルトの名無しさん:2005/12/08(木) 02:44:33
976デフォルトの名無しさん:2005/12/08(木) 03:51:38
>>975
何てことすんねん
977デフォルトの名無しさん:2005/12/08(木) 08:22:32
VB6.0にてスプレッドの項目をクリップボードに
コピーしたんですが2000行(68列)のデータが
コピーされず100行の絞込みを行った場合
コピーされたので、何かいい解決方法はないでしょうか?
978デフォルトの名無しさん:2005/12/08(木) 09:41:37
>>977
質問文を書き直す。
979デフォルトの名無しさん:2005/12/08(木) 10:01:44
>>978 質問わかりにくくてすいません。
環境VB6.0
スプレッドにてデータを表示
データレコード数2000件
行数68
列数2000
以上データをClipboard.SetText (.Clip)
にてクリップボードに出力したが出来ませんでした。
データ量を減らすと出来るのですが・・・
行数68
列数100
でクリップボードに出力が成功しています。
980デフォルトの名無しさん:2005/12/08(木) 12:00:24
Excel VBA でMSCommを使おうとしていますが、
On_commイベントでの受信ができません。
Windows XP Pro SP2, Excel 2003 SP1, VBA(VB6.0相当?)
PC: Excel使用, 外部装置:何か来ると、ステータスを返す

以下のプロシージャで"hoge"が送れました。
Private Sub Command1_Click()
Set mscomm1 = CreateObject("MSCOMMLib.MSComm.1")
mscomm1.CommPort = 1
mscomm1.Settings = "9600,N,8,1"
mscomm1.PortOpen = True
mscomm1.Output = "hoge"
mscomm1.PortOpen = False
End Sub
外部装置からステータスが返ってきますが、下のイベントは発生しません。
Sub MSComm1_OnComm()
MsgBox "fuga"
End Sub
Comman1_Click() 内で Wait を使うと拾えます。
If Application.Wait(Now + TimeValue("0:00:1")) Then
data = mscomm1.Input
End If
アドバイスお願いします。
981デフォルトの名無しさん:2005/12/08(木) 12:33:52
>>980
mscomm1のクラスオブジェクト変数のスコープの問題とか?
982962:2005/12/08(木) 14:40:21
みなさんありがとうございました。色々ご教授いただいた方法を
試みまして、クラスにプロパティを作りました。たすかりました
983デフォルトの名無しさん:2005/12/08(木) 14:57:07
>>980
WithEvents 付けてる?
984デフォルトの名無しさん:2005/12/08(木) 15:15:07
>>981, 983
レスありがとうございます。
今まで、クラスモジュールを使ったことがなく、
今回のようなケースで使うのかと初めて知りました。

[ツール]-[参照設定] Microsoft Comm Control 6.0 にチェック
クラスモジュール(Class1)
-------------------------------------------
Public WithEvents mscm As MSCommLib.mscomm

Private Sub mscm_OnComm()

End Sub
-------------------------------------------
標準モジュール(Module1)
-------------------------------------------
Dim mscomm1 As Class1

Sub SetMscommEvent()
Set mscomm1.mscm = MSCommLib.mscomm
End Sub
-------------------------------------------
本に、実際のオブジェクトと関連づける必要がある、
とあったので、上のようにしましたが、
「メソッドまたはデータ メンバが見つかりません。」
とエラーが出ます。
Set mscomm1.mscm = MSCommLib.mscomm
だと、「オブジェクトが必要です」
Set mscomm1.mscm = CreateObject("MSCOMMLib.MSComm.1")
だと、「オブジェクト変数または With ブロック変数が設定されていません。」
あと、少しでうまくいく気がするのですが...
985デフォルトの名無しさん:2005/12/08(木) 15:16:05
訂正

Set mscomm1.mscm = mscomm
だと、「オブジェクトが必要です」
986デフォルトの名無しさん:2005/12/08(木) 15:19:07
Set mscomm1 = New Class1

Set mscomm1.mscm = MSCommLib.mscomm
の前に追加
987デフォルトの名無しさん:2005/12/08(木) 17:37:39
>>986
Set mscomm1.mscm = New MSCommLib.mscomm
じゃね?
988980:2005/12/08(木) 17:56:55
レスありがとうございます。
VBなら簡単なのに。VBAだとここまでてこずるとは。
標準モジュール(Module1)
-------------------------------------------
Sub SetMscommEvent()
Set mscomm1 = New Class1
Set mscomm1.mscm = New MSCommLib.mscomm
End Sub

Private Sub SendData()
Set mscomm1 = New MSCommLib.mscomm
mscomm1.CommPort = 1
mscomm1.Settings = "19200,N,8,1"
mscomm1.PortOpen = True
mscomm1.Output = "piyo"
mscomm1.PortOpen = False
End Sub

Sub mscm_OnComm()
MsgBox "fuga"
End Sub
-------------------------------------------

SetMscommEvent()を一回実行してから受信すれば、
mscm_OnComm()が実行されると期待したのですが、
まだ、反応なしです。
989デフォルトの名無しさん:2005/12/08(木) 18:26:04
BASP21を利用して メールで添付されてきたCSVファイルを取り出して 指定したフォルダに
自動的に保存したいのですが。

「 output = bobj.ReadMail(file, nobody, Folder) 」を
下のコードの中にどのように追加すればいいでしょうか?


Dim bobj, ar
Dim Server As String, User As String, Pass As String, Command As String, Folder As String
Set bobj = CreateObject("basp21") ''BASP21オブジェクト
Server = "pop.xxxxx.com" ''POP3サーバー
User = "toru_tanaka" ''アカウント名
Pass = "password" ''パスワード
Command = "SAVEALL" ''コマンド
Folder = "<" & ThisWorkbook.Path & "\mail" ''保存するフォルダ
ar = bobj.RcvMail(Server, User, Pass, Command, Folder)
If IsArray(ar) Then
MsgBox "メールを受信しました"
Else
MsgBox "新着メールはありません"
End If
Set bobj = Nothing
990デフォルトの名無しさん:2005/12/08(木) 18:40:00
どうも、980はインスタンスの概念がわからないようだな。
991980:2005/12/08(木) 18:49:38
>>990
すいません。分かってないと思います。
何が悪いか教えてもらえませんか。
992デフォルトの名無しさん:2005/12/08(木) 20:02:09
>>991
こういう人って不思議でしょうがないんだけど
人に質問する前にやることあるんじゃないの?

VBのコントロールの使い方なんてたいていググればいくらでも見つかるけど。
現に今"oncommイベント"で検索してみたが、順をおって使い方を説明しているところが
山ほど出てくる。

こういうやるべきことやらずにアタフタする人は何やっても多分ダメだね。
少なくともPGには向いてないわ。

まあ貶すだけだと後味悪いんでちょっとヒント。
MSCommのイベントは設定してやらないと発生しない。
RThresholdだと思ったけど、ちゃんと設定してます?

っていうか、MSCommで受信処理にOnCommイベントなんて使っちゃダメだよ。
どんなケースでも絶対使わないとまでいえないけど、普通の通信プログラムじゃ
まず使わない。

OnComm使って受信処理するようなコードを書く人はまあヘッポコだわな。
993デフォルトの名無しさん:2005/12/08(木) 20:41:25
VBじゃなくてさ、Excel VBAなんだよ。
VBなら検索すればサンプル山ほどあるし、実際動かしている。
こんなとこで時間食っているから、ヘッポコであることは認めるし、
OnCommしか使えないレベルでもあるが、
今回の件はOnCommで十分だと思うね。


994デフォルトの名無しさん:2005/12/08(木) 21:24:34
意味がわからない。
VBのコントロールの使い方はVBからだろうとVBAからだろうと同じですが。
995デフォルトの名無しさん:2005/12/08(木) 22:27:41
テンプレ議論まだ〜?チンッチンッ☆(脳内AA)
996デフォルトの名無しさん:2005/12/08(木) 22:38:43
>>995
何がしたいんだよ
997995:2005/12/08(木) 22:52:45
>>996
いやいやいやこのスレの行く末を案じて。ちょw
998995:2005/12/08(木) 23:15:41
次の患者さんどーぞ。

つーか俺様のエピソードを1つ
VS6ProにFrontPage98ついてたの知ったのは購入3年後でしたが。
…w

999デフォルトの名無しさん:2005/12/08(木) 23:19:23
1000
1000デフォルトの名無しさん:2005/12/08(木) 23:19:50
おしい。
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。