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も見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テキストボックスにセルの値を...
-
時計の:を点滅させたい
-
変数に256文字以上のテキストを...
-
DirectXでの読み込みについて
-
Suzukaで一行ニュースティッカ...
-
YOASOBI
-
ダブルクリックと2回クリックの...
-
プログラミング、アーキテクチ...
-
【VB.NET】別Formのボタンが押...
-
Pythonのtkinterについて
-
ipconfig /releaseって何ですか?
-
SNMPの標準MIBについて
-
pythonのグローバル変数
-
PYTHONのtkinterについて
-
UWSCのBTN関数について。
-
else if文の順序を変えることに...
-
VB6.0のHideのバグ?
-
四乗根を英語で言うと・・・
-
マウス 追従 範囲外
-
webページ上、TABフォーカス出...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
別のアプリケーションのテキス...
-
テキストボックスの中身をリセ...
-
テキストボックスにセルの値を...
-
RPG(AS400)の本、サイトってあ...
-
変数に256文字以上のテキストを...
-
ホームぺージ制作で間違って重...
-
VB6.0 でメニューを作りたいん...
-
改行含むテキストの表示の仕方
-
pdfのテキスト全文コピー、テキ...
-
VB.NET2005 DataGridViewでレコ...
-
コモンダイアログのshowopenに...
-
VBAでホームページからコピーし...
-
テキストエリア内の文字列にリ...
-
VS2008 C# ボタンのテキストを...
-
VBAからPDFのテキストフィールド
-
'2465'指定した式で参照してい...
-
VB.NET メッセージボックスの表...
-
チェックボックスのテキストを...
-
VBSでMid関数を使ったらエラー...
-
ドラッグ&ドロップからの取得
おすすめ情報