さんぽ

さんぽ

Feb 23, 2008
XML
カテゴリ: プログラミング
Excel VBAの勉強をはじめて1年半ぐらいたち、やっと使えるようになってきました。


ファイルを選択すると、ファイル名を返すプログラムです。
頻繁に使用しますので、忘備録として載せました。


Declare Function GetOpenFileName Lib "comdlg32.dll" Alias "GetOpenFileNameA" _
(pOpenfilename As OPENFILENAME) As Long

'APIに渡す構造体を定義
Public Type OPENFILENAME
lStructSize As Long 'この構造体の長さ

hInstance As Long
lpstrFilter As String 'フィルタ文字列
lpstrCustomFilter As String
nMaxCustrFilter As Long
nFilterIndex As Long
lpstrFile As String '選択されたファイル名(フルパス)
nMaxFile As Long 'lpstrFileのバッファサイズ
lpstrFileTitle As String
nMaxFileTitle As Long
lpstrInitialDir As String '初期フォルダ名
lpstrTitle As String 'コモンダイアログのタイトル名

nFileOffset As Integer
nFileExtension As Integer
lpstrDefExt As String 'ファイル名の入力時、拡張子が省略された時の拡張子
lCustrData As Long
lpfnHook As Long

End Type

Function getfilename()
Dim Fkouzou As OPENFILENAME
Dim lngRet As Long, NULLPos As Long
Dim FileName As String
Dim wb2 As Workbook
Dim SheetName As String


With Fkouzou 'GetOpenFileName関数に渡す構造体を設定
.lStructSize = Len(Fkouzou)
.lpstrInitialDir = ThisWorkbook.Path '(最初に表示するディレクトリ)
'(フィルターでファイル種類を絞る)
.lpstrFilter = "後引張り(RLTF17*.txt)" & vbNullChar & "RLTF17*.txt"
.nMaxFile = 256 '(ファイル名の最大長(パス含む))
.lpstrFile = String(256, vbNullChar) '(ファイル名を格納する文字列
' NULLで埋めておく)
End With

lngRet = GetOpenFileName(Fkouzou) 'ファイル選択ダイアログを表示。
'(「開く」を押すと.lpstrFileにファイル名が格納される。
' 実際に「開かれる」わけではない!)

NULLPos = InStr(Fkouzou.lpstrFile, vbNullChar) 'ファイル名の終り(NULLの位置)を調べる
FileName = Left(Fkouzou.lpstrFile, NULLPos - 1) 'ファイル名の有効部分を取り出す


If FileName <> "" Then 'キャンセルを押された場合は実行しない。
getfilename = FileName

Else
getfilename = "ファイルを指定してください"


End If
Debug.Print getfilename
End Function





お気に入りの記事を「いいね!」で応援しよう

Last updated  Feb 23, 2008 04:00:36 PM
コメント(1) | コメントを書く
[プログラミング] カテゴリの最新記事


【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! -- / --
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x
X

PR

Profile

がっちゃん0508

がっちゃん0508

Keyword Search

▼キーワード検索

Favorite Blog

まだ登録されていません

Comments

excel 2010 新機能 マクロは便利です!@ excel 2010 新機能 vbaは便利です! vbaをマスターする簡単な方法は、マクロを…
どぴゅ@ みんなホントにオナ鑑だけなの? 相互オナって約束だったけど、いざとなる…
お猿@ やっちまったなぁ! <small> <a href="http://feti.findeath…
チリチリ@ 次は庭で全裸予定w <small> <a href="http://kuri.backblac…
通な俺@ 愛 液ごちそうたまでしたw <small> <a href="http://hiru.kamerock…

Freepage List


© Rakuten Group, Inc.
X
Mobilize your Site
スマートフォン版を閲覧 | PC版を閲覧
Share by: