風のめも

kaze88.exblog.jp

奈良・戒那山麓に

<   2014年 01月 ( 1 )   > この月の画像一覧

ちょい メモ!
CSVファイルを読み込む
http://www.moug.net/tech/exvba/0060086.html

CSVファイルの行数を取得する
http://www.moug.net/tech/exvba/0060083.html

ブックのオープンと自動実行マクロ
http://www.moug.net/tech/exvba/0060077.html

CSVのデータ出力でヴァリアント型とした場合、元データと異なる結果は、文字列型に変換して出力する
http://www.moug.net/tech/exvba/0060026.html

ファイルのパスについて
http://www.moug.net/tech/exvba/0060036.html
ファイルのパスについて
(Excel 97/2000)
エクセルファイルやその他Officeのファイル、あるいはテキストファイルなど、Windowsではさまざまなファイルが扱われますが、ファイルの存在する位置を表すのが”パス”です。

例えば、エクセルVBAでは・・・

Application.Path(エクセル本体のパス)
ThisWorkbook.Path(コードが記述されたブックのパス)(フルパスでないのなら 相対??)
ThisWorkBook.FullName(コードが記述されたブックのフルパス)
などがよく使われます。

エクセルファイル以外でもこのようなパスを扱う場面はVBAでテキストを扱ったり、他のシステムとの連動を図る場合などは必須項目となりますが、以下ではファイルのパスの扱い方のいろいろな方法をご紹介します。
'1.Dir関数

'ReturnValue = Dir 対象ファイルフルパス

Dim RetVal As String
RetVal = Dir("C:\Windows\Calc.exe")
'⇒ 返り値は"Calc.exe" ファイルが存在しない場合は空白
'2.Split関数でファイル名を操作(XL2000のみ)

Dim Var As Variant
Var = ThisWorkbook.FullName
Var = Split(Var, "\") '\マークを区切り文字にして配列化
MsgBox Var(UBound(Var)) '配列の上限(ここでは拡張子を含むファイル名)
'3.InStr、InstrRev関数

Dim FName As String
Dim Pos As Integer
FName = ThisWorkbook.FullName
Pos = InStrRev(FName, "\") 'フルパスの後ろから\マークの位置を検索
MsgBox Mid(FName, Pos + 1) '拡張子を含むファイル名を取得
'4.WindowsScriptingHost(WSH)

Dim FNam As String
Dim Ret As String
Dim Fso As Object

FNam = ThisWorkbook.FullName

Set Fso = CreateObject("Scripting.FileSystemObject")
Ret = Fso.GetBaseName(FNam) 'ベース名(拡張子を除くファイル名)を取得
MsgBox Ret
※このほかWSHのFileSystemObjectにはファイル、パス関連のさまざまなメソ
 ッド等があります。
 GetExtensionName(Path)・・・拡張子の取得
 GetAbsolutePathName(ファイル名)・・・絶対パスの取得
        (ファイルは存在してなくてもOK。ファイル名のみの
        指定ではカレントディレクトリのパス+ファイル名となる)
GetParentFolderName(Path)・・・ファイルが存在するフォルダのパス取得
 など。


テキストファイルの内容を取得する
http://www.moug.net/tech/exvba/0060057.html
テキストファイルの内容を取得する
(Excel 2000/2002/2003)
●概要●
FileSystemObject(以下、FSO)のOpenTextFileメソッドを利用して、テキストファイルの内容を取得することができます。OpenTextFileメソッドの戻り値は、ファイルを読み書きするためのTextStreamオブジェクトへの参照です。このTextStreamオブジェクトのReadAllメソッドを利用してファイルの内容を取得します。

 構文 OpenTextFile ファイル名
 設定項目    内容
 ファイル名   ファイル名をフルパスで指定


次のサンプルは、FSOのOpenTextFileメソッドを利用して、作業中のブックと同じフォルダにある「Sample.txt」ファイルを開き、ReadAllメソッドを利用して取得した内容をイミディエイトウィンドウに表示します。
なお、このサンプルを実行するには、「Windows Script Host Object Model」への参照設定が必要です。

●サンプル●

Sub Sample()
Dim FileName As String
Dim TempData As String

FileName = ThisWorkbook.Path & Application.PathSeparator & "Sample.txt"

With New IWshRuntimeLibrary.FileSystemObject
With .OpenTextFile(FileName)
TempData = .ReadAll
.Close
End With
End With

Debug.Print TempData
End Sub



Excel VBA:ファイル操作関連のテクニック
http://www.moug.net/tech/exvba/0062.html


第14回 目的の位置にセルをコピーしてみよう 1/4
http://www.moug.net/vba/beginners/exvba014-1.html
[PR]
by kazepapa | 2014-01-31 08:08 | ネット&ツール | Trackback | Comments(0)
このサイト、URLをエキサイトマイリンクに登録する ブログトップ