• 締切済み

VBについて

VB6.0でコモンダイアログボックスにてファイルを指定をしたいのですがどの様にしたらいいのでしょうか? 得意な方わかりやすく教えてください。(ファイルを読み込んでCSVファイル等へ表示したいのですが)

みんなの回答

noname#25230
noname#25230
回答No.6

そもそもコモンダイアログボックスの機能の限界について認識されていないように見受けられますが。 コモンダイアログボックスが出来るのは ・ファイルの所在をユーザーに指定させる。 ・指定されたファイルの名前を取得する。 だけです。コモンダイアログで取得されたファイル名を元に、ファイルをオープンして中身を読み、またCSVファイルとして書き出す処理は別途自分で作成する必要があります。 まずこの点について確認しなければなりませんね。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.5

#4です。下記を試して見てください。 文字列を""で囲んでいないCSV形式なら、Replaceの行とその前行は不要。 Sub tesat01() MsgBox "処理開始" fn = Application.GetOpenFilename( _ "CSVファイル(*.csv),*.csv") j = 2 Open fn For Input As #1 While Not EOF(1) Line Input #1, a b = Split(a, ",") 'カンマで区切り位置分割 For i = 0 To UBound(b) '配列要素の数だけ=項目数だけ Cells(j, i + 1) = b(i) Cells(j, i + 1).Activate ActiveCell.Replace Chr(34), "" '””を取り除き Next i j = j + 1 Wend Close #1 MsgBox "処理終了" MsgBox "処理件数" & j - 2 & "件" End Sub

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.4

#2です。これではVBではなく、エクセルVBAではないですか。問題が変ったと受け取られる内容です。 >画面シートに表示 Msgboxを使う程度で良いのですか。 >FROM~TO初期値セット 2 ~ 最終行 どの列?2より1づつ増やして連番を振ると言うこと?

  • laputart
  • ベストアンサー率34% (288/843)
回答No.3

質問と補足とは全く整合性がないと思います。 補足ではなにを質問されたいのか理解に苦しみます。 何でも回答いたしますが、質問の内容を今一度 的確に書いて下さい!!!

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

#1のご回答のようにツール-コンポーネント-Microsoft Common Dioalog Control 6.0にチェックを入れOKをクリックする。 ツールボックスにコントロールが追加されるのでフォ‐ム上に貼りつける。ダブルクリックする。 Form Loadイベントに Private Sub Form_Load() Form1.CommonDialog1.ShowOpen End Sub FormのClickイベントに Private Sub Form_Click() fn = CommonDialog1.FileName Form1.Print fn Open fn For Input As #1 p01: While Not EOF(1) Line Input #1, a Form1.Print a Wend Close #1 Form1.Print "END" End Sub 実行するとファイルを「開く」画面が出る。ファイルを指定し、フォームをクリックすると、ファイル名と内容が フォーム上に表示。

asa0220
質問者

補足

すみません。補足をさせていただきます。 画面シート 1.ファイル読み込み処理 ・処理開始メッセージを画面シートに表示 ・DATAシート(エクセル)へファイルを読み込み処理 ・処理終了メッセージを画面シートに表示 ・処理終了後、処理件数を画面シートに表示 ・FROM~TO初期値セット 2 ~ 最終行 DATAシート 1.1行目はタイトル行とし、固定 2.あるファイルを1行順読みし、タブ区切りごとに(A 2)~(AF 2)へセットする。  [異常処理]  (AF 2)へセットする文字がENDでなければ、  「ファイルレイアウトが違います。」で異常終了。 3.各セルにセットする値は、ファイルの値をそのままセットする。  例)AE列の合計金額も、計算するのではなく、ファイルの値をセットする。

  • laputart
  • ベストアンサー率34% (288/843)
回答No.1

CommonDialogの表示をツールボックスに追加する 方法  メニューバーからプロジェクト→コンポーネント を開いて、MicrosoftCommonDialogV6.0 を選択する (ルーツバーに追加されます) これをフォームに貼り付けます。 この名前はデフォルトでCommonDialog1となっていますので イベントで ファイルにセーブする時 CommonDialog1.ShowSave ファイルを開く時 CommonDialog1.ShowOpen としれやればコントロールを開いて操作することが 出来ます。詳しい設定はプロパティボックスでも出来ますが、csvファイルにする場合はフィルターを *.csv にするなどで設定が可能です。 質問の意図と違っていたら連絡下さい。

asa0220
質問者

補足

画面シート 1.ファイル読み込み処理 ・処理開始メッセージを画面シートに表示 ・DATAシートへファイルを読み込み処理 ・処理終了メッセージを画面シートに表示 ・処理終了後、処理件数を画面シートに表示 ・FROM~TO初期値セット 2 ~ 最終行 DATAシート 1.1行目はタイトル行とし、固定 2.あるファイルを1行順読みし、タブ区切りごとに(A 2)~(AF 2)へセットする。  [異常処理]  (AF 2)へセットする文字がENDでなければ、  「ファイルレイアウトが違います。」で異常終了。 3.各セルにセットする値は、ファイルの値をそのままセットする。  例)AE列の合計金額も、計算するのではなく、ファイルの値をセットする。