ファイル処理
mp3タグが文字化けしないよう、文字コードが調べたかった。 最初の3バイトが「ID3」で21バイト目が「01」ならOK!とやるだけでよかった。 それだけでよかったのに、、、なんか長いのが出来た。 独学なので勘弁。 Option Explicit Sub メイン処理() Dim mp3b …
必要なものを作っていく。 16進数と2進数の10進数変換マイナスや小数点以下の数値、エラーを考慮せずに作ったので取扱注意。 '16進数を2進数に変換 Function HexToBin(sHex As String) As String Dim rtnStr As String: rtnStr = "" Dim i As Long, tmp As S…
指定したフォルダが無ければ全部作ってしまえば良い。 仕様変更が原因だったとしてもエラーにならなくなる!怒られてしまえ! 'フォルダが無ければ上階層から全部作る。 Function makeFolder(fullPath As String) As Boolean On Error GoTo err1 'fullPath =…
'ランダムファイル名を生成(FSO) Function getRndFileName() As String 'Dim FSO As Object 'Set FSO = CreateObject("Scripting.FileSystemObject") Dim FSO As FileSystemObject Set FSO = New FileSystemObject getRndFileName = FSO.GetTempName 'getR…
'オートシェイプを画像として保存 Sub saveShapeImage(myShape As Shape, outputPath As String) 'シート内にチャートオブジェクトを作成 Dim myChart As ChartObject Set myChart = ActiveSheet.ChartObjects.Add( _ Left:=0, _ Top:=0, _ Width:=myShape.W…
'参照設定 Microsoft Scripting Runtime Sub 複数のテキストファイルを1行ずつ読み込む処理FSO() Dim tempFolder As String tempFolder = ThisWorkbook.Path & "\temp\" Dim f As File Dim ts As TextStream Dim fso As FileSystemObject Set fso = New File…
Sub 画像ファイル読み込みテスト() Dim myFileName As Variant Dim myShape As Shape 'ファイル選択ダイアログ myFileName = Application.GetOpenFilename 'キャンセルやサイズ0の場合は処理終了 If myFileName = False Then Exit Sub If FileLen(myFileName…
同一フォルダのエクセルファイル全部に対してフォントを変える処理。 行列番号部分はスタイルで指定されている模様。この処理だけでは無理。 Sub ゴシック統一() Dim buf As String, folderPath As String Dim ws As Worksheet, wb As Workbook folderPath =…
とりま最近つくったやつ。 エクセル側からワード文書内で検索と置換をするだけのものです。 どうやら改行を含む文字の場合は何かしら手を打たないといけない模様。 使う場合は参照設定をしましょう。(Microsoft Wordなんたら) Sub chikan() Dim path As St…
「Option Explicit」マジ大事。適当に書いても動くからVBA厄介デスヨネー。 UTF-8はBOM有で、UTF-8NはBOM無し。 本題。UTF-8はADODBを使って入出力します。FSOもついでに載せときます。 Option Explicit Public Sub テキストファイルUTF8読み込み(strFilePat…
変数の宣言も廃棄も要らぬ書き方メモ。Withで囲まれている間だけ変数が有効。 Dim buf As String With CreateObject("Scripting.FileSystemObject") With .GetFile("テキストファイルパス").OpenAsTextStream buf = .ReadAll .Close End With End With Debug…
Sub テキストファイルタブ区切り一括出力() Dim buf As String '1行 Dim delimiter As String '区切り文字 Dim row As Range, clm As Range Dim ws As Worksheet Dim outputTxt As String '全データ Dim outputFilePath As String '出力パス Dim fileNo As I…
Sub テキストファイル出力タブ区切り() Sheets(1).Copy '新しいブックが作成される Application.DisplayAlerts = False ActiveWorkbook.SaveAs Filename:="C:\temp\test.txt", FileFormat:=xlText ActiveWorkbook.Close 'SaveChanges:=False Application.Dis…
Sub テキストファイル読み込みタブ区切り() Dim filePath As String Dim buf As String, iRow As Integer Dim i As Integer Dim temp As Variant Dim fileNo As Integer filePath = Application.GetOpenFilename("CSVファイル(*.csv),*.csv,テキストファイル…
Name ファイルパス As 変更後ファイルパス '勿論エラー処理が必要
Sub ハイパーリンクを削除して保存する処理() Dim targetWb As Workbook, targetWsh As Worksheet Dim strFolderPath As String strFolderPath = ThisWorkbook.Path & "\指定フォルダ\" '画面の更新を停止して処理を高速化 Application.ScreenUpdating = Fal…
Private Sub readLineTextFile() Dim fType As String, promptText As String, chDirPath As String Dim fPath As Variant Dim buf As String 'カレントディレクトリを移動 curDirPath = CurDir ChDir ActiveWorkbook.Path fType = "テキストファイル (*.txt…
大量のシートを抱えたブックの全シートを、別々のブックにしたかった。 シート1枚目を残し、シート名をファイル名としてブック保存するだけ。 Sub ブック吐き出し() Dim strSaveFileName As String, strSavePath As String strSavePath = ThisWorkbook.Path …
'ファイルパス、ファイル名+拡張子の状態からファイル名だけを取り出す処理。 '[\]でSplitをかけて最後を取得、[.]でSplitをかけて最初を取得すればOK Function getFileName(file_path) As String Dim temp As String Dim tmp_array2 As Variant, tmp_array…
file_name = Dir(target_dir & "*.csv") Do While file_name <> "" file_name = Dir() '次のファイル Loop ※Dirはファイル名が返される。 ファイルが見つからない場合には空文字が返る。
Dim WSH As Object Set WSH = CreateObject("WScript.Shell") WSH.Run Chr(34) & FilePath & Chr(34) 'Set WSH = Nothing ※Chr(34)でFilePathを囲む必要がある。Chr34はダブルクォーテーション。 囲まないとファイルパスに空白が含まれていた場合に失敗する…
RmDir "C:\FilePath\" ※RmDirはディレクトリ内にファイルがあるとエラーとなる。 ファイルが存在するディレクトリを削除するにはFileSystemObjectを使うようです。
'指定したディレクトリ内のファイル数を数える。 Public Function FileCount(sDir As String) As Integer Dim rtnCnt As Integer Dim FSO As Object Set FSO = CreateObject("Scripting.FileSystemObject") rtnCnt = FSO.GetFolder(sDir).Files.Count Set FS…
Dim tempDir As String tempDir = ThisWorkbook.Path & "\Test\" If Dir(tempDir, vbDirectory) = "" Then MkDir tempDir 'ディレクトリの作成 End If
'引数1 targetDir 対象ディレクトリパス '引数2 extenstion 対象ファイルの拡張子を指定(例:*.csv) '引数3 recursive サブディレクトリの検索(True:行う, False:行わない) Public Sub FolderSearch(targetDir As String, extension As String, recursive As…