CommonDialog1.Filter = "テキスト(*.txt)|*.txt"
CommonDialog1.FilterIndex = 1
CommonDialog1.Flags = cdlOFNFileMustExist
CommonDialog1.ShowOpen
上記のようなプログラムを書いて「ファイルを開く」
ダイアログを表示させてます。
しかし、開いたダイアログのファイル名を入力する欄が
テキストではなく、コンボボックスになっています。
私はファイル名はテキストでただ入力しかできないよう
にしたいのですが、どのように設定すればよいのでしょうか?
それと、左側に「履歴」「デスクトップ」「マイコンピュータ-」「マイネッ
トワーク」のアイコンが表示されているのですがこれも消したいのです。
過去ログを検索しましたが似たような質問がなかったので
質問させていただきました。
よろしくお願い致します。
No.2ベストアンサー
- 回答日時:
>APIはまったく使ったことがなく、よくわかりません。
いきなりこのAPIは結構厳しいかも・・・
>どのDLLを使い、どのようにプログラムを書くのでしょうか?教えていただけると助かります。
順番が違いますね。
DLLを探すではなく、使用API関数を探すのが先です。
APIが見つかったら、どこのDLLのにあるかを探します。
で、ファイルを開くダイアログを表示するには、
GetOpenFileName
というAPIを使用します。
詳細は、MSDNを見てください。
とりあえず、APIでファイルを開くコモンダイアログを表示するサンプルです。
http://homepage1.nifty.com/MADIA/vb/API/GetOpenF …
>私はファイル名はテキストでただ入力しかできないよう
>にしたいのですが、どのように設定すればよいのでしょうか?
こっちはあきらめたほうがいいですよ。
単純にAPIを使うだけではないので。
>それと、左側に「履歴」「デスクトップ」「マイコンピュータ-」
>「マイネッ トワーク」のアイコンが表示されているのですがこれも消したいのです。
こっちなんですが、この左側の部分自体がVB6以降のOSであるWindows2000以降の機能なので、特別な対応が必要です。
urlのところにあるサンプルの中の、OPENFILENAME構造体をWindows2000用に変更する必要があります。
'OPENFILENAME構造体
Public Type OPENFILENAME
lStructSize As Long '構造体のサイズ
hwndOwner As Long 'ウインドウのハンドル
hInstance As Long 'インスタンスハンドル
lpstrFilter As String 'フィルター
lpstrCustomFilter As String 'カスタムフィルター
nMaxCustFilter As Long 'カスタムフィルターのサイズ
nFilterIndex As Long 'フィルタのインデックス
lpstrFile As String 'ファイル名のバッファ
nMaxFile As Long 'ファイル名のバッファのサイズ
lpstrFileTitle As String 'フルパス用のバッファ
nMaxFileTitle As Long 'フルパス用のバッファのサイズ
lpstrInitialDir As String 'ディレクトリを指定
lpstrTitle As String 'ダイヤログボックスのタイトル
flags As Long '定数(OFN_××参照)
nFileOffset As Integer 'フルパスの中のファイル名までのオフセット
nFileExtension As Integer '拡張子までのオフセット
lpstrDefExt As String 'デフォルトの拡張子
lCustData As Long 'lpfnHookで渡すデータ
lpfnHook As Long 'フック関数のポインタ
lpTemplateName As String 'テンプレート名
'---ここから追加---
pvReserved As Long
dwReserved As Long
FlagsEx As Long
'---ここまで追加---
End Type
「ここから追加」から、「ここまで追加」の間の行を追加してください。
あと、
Public Const OFN_EX_NOPLACESBAR = &1
という1行を追加して定数を宣言してください。
で、呼び出すところのEnd Withの前の行に、
.FlagsEx = OFN_EX_NOPLACESBAR
と記述すれば左側の部分が消えるはずです。
#このあたりの説明は、#1の参考urlに書いてあります。
理解していただけましたか?
回答ありがとうございます。
教えてもらったとうりに書くとできました。
しかもAPI関数をたくさんのせてるサイトまで
教えてもらってさっそくブックマークに追加しました。
ファイル名は今回はあきらめます。
教えてもらったサイトでAPIのことを勉強します。
ありがとうございました。
No.1
- 回答日時:
>私はファイル名はテキストでただ入力しかできないよう
>にしたいのですが、どのように設定すればよいのでしょうか?
標準のコモンダイアログのインターフェイスを使うのでしたら不可能です。
#コモンダイアログコントロールではなくWindowsAPIを使用するのでしたら何とかなりますが。
>それと、左側に「履歴」「デスクトップ」「マイコンピュータ-」
>「マイネッ トワーク」のアイコンが表示されているのですがこれも消したいのです。
コモンダイアログコントロールを使用している場合は不可能です。
WindowsAPIを直接使用している場合は可能です。
参考までにWinAPIを使用するときの構造体の設定内容を。
http://yokohama.cool.ne.jp/chokuto/urawaza/struc …
参考URL:http://yokohama.cool.ne.jp/chokuto/urawaza/struc …
この回答への補足
回答ありがとうございます。
APIはまったく使ったことがなく、よくわかりません。
どのDLLを使い、どのようにプログラムを書くのでしょうか?教えていただけると助かります。
少し調べましたがSPIビューアでDeclear宣言を書いてくれるとありますがどのDLLを
選んでよいのかわかりません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 動かなくなってしまった古いVBAを動くようにしたい 8 2022/09/20 13:57
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/03 13:18
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/15 15:48
- Excel(エクセル) エクセルでエラーを無視して一番左側のセルの値を返したい 2 2023/07/27 13:06
- 工学 制御工学の問題について 1 2022/10/22 17:44
- Excel(エクセル) 条件書式でリスト内以外の単語に色をつけたい 1 2022/09/23 13:23
- Excel(エクセル) 隣り合っていないセルを まとめて税込表示したい 8 2022/09/25 14:32
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/21 09:42
- Visual Basic(VBA) VBA 参照先で選んだファイルをコピーし、出力先に別名で保存したい 8 2022/05/13 20:37
- Access(アクセス) Accessで予定表を作成しようとしてます。 テーブル フィールド名 連番 オートナンバー型 年月日 2 2023/07/23 11:40
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
変数に256文字以上のテキストを...
-
テキストの横移動させて表示
-
テキストボックスの中身をリセ...
-
アクセスのフォームから検索を...
-
VBSでMid関数を使ったらエラー...
-
ただただ無駄な
-
リッチテキストボックスでの書...
-
FLASHで変数に代入した数値の桁...
-
別のアプリケーションのテキス...
-
教本どおりにやってもそのとお...
-
外部テキストにリンクが貼れません
-
'2465'指定した式で参照してい...
-
VBでテキストエディタの上書き保存
-
一つのキーワードで2つのテキス...
-
ACCESS2002の住所入力支援
-
ActionScriptエディタを作りた...
-
POIでのテキストボックス作成に...
-
DirectXでの読み込みについて
-
photoshopで書いた四角の枠の中...
-
マウス自体の移動量の取得
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
テキストボックスの中身をリセ...
-
テキストボックスにセルの値を...
-
別のアプリケーションのテキス...
-
変数に256文字以上のテキストを...
-
改行含むテキストの表示の仕方
-
VB6.0 でメニューを作りたいん...
-
RPG(AS400)の本、サイトってあ...
-
'2465'指定した式で参照してい...
-
pdfのテキスト全文コピー、テキ...
-
HTMLのtextbox類に文字を残す
-
時計の:を点滅させたい
-
IP Address 入力フォームについて
-
全てのテキストボックスをセル...
-
フォームのテキストの入力数字...
-
VS2008 C# ボタンのテキストを...
-
2つのテキストファイルを比べて...
-
漢字入力した値のカタカナ変換...
-
空白で入力フォームのボタンを...
-
VBAからPDFのテキストフィールド
-
テキストエリア内の文字列にリ...
おすすめ情報