閲覧頂きありがとうございます。
質問内容はタイトル通りです。
マクロ概要
平仮名、片仮名、アルファベット、数字が混合した.wavファイルが入っているフォルダを読み込み、ファイル名を配列に入れ左端1文字を比較して50音順にソート。左端1文字が平仮名もしくは片仮名でない場合はInputBoxを利用して読み仮名を入力。ソートが完了したらセルに出力して一覧を作成する。
下記のコードで行っている事
A1セルをフォルダパス入力欄とし、入力が完了したらマクロを起動。配列を宣言する為に、フォルダ内に幾つ.wavファイルがあるか調べる為、Dir関数をDo Loopで回す。ループを抜けたらファイル数をカウントしていた変数Countの数値を元に変数Coreを宣言する。配列の準備が整った所で再度Dir関数をDo Loopで回し、配列にファイル名と左端1文字の読み仮名を入れていく。この時左端1文字が平仮名もしくは片仮名以外ならInputBoxを使い読み仮名を入力する。
ソート機能はまだできていない為記載していません。
このコードだけでも正しく動いていれば途中でInputBoxが出て入力待ちになるはずなのですが、出てきません。
ご教授お願いします。
VBA
1Private Sub Worksheet_Change(ByVal Target As Range) 2 3 Const TgCel = "A1" 4 Dim Count As Long: Count = 0 5 Dim LoadFile As String 6 Dim Core() As Variant 7 8 If Not Intersect(Range(TgCel), Target) Is Nothing Then 9 LoadFile = Dir(A1 & ".wav") 10 Do While LoadFile <> "" 11 LoadFile = Dir() 12 Count = Count + 1 13 Loop 14 ReDim Core(Count, 1) As Variant '(ファイル名,ファイル名頭文字) 15 Count = 0 16 LoadFile = Dir(A1 & ".wav") 17 Do While LoadFile <> "" 18 LoadFile = Left(LoadFile, -4) 19 Core(Count, 0) = LoadFile 20 If Right(LoadFile, 1) Like "[あ-ん]" Then 21 Core(Count, 1) = Right(LoadFile, 1) 22 ElseIf Right(LoadFile, 1) Like "[ア-ン]" Then 23 Core(Count, 1) = StrConv(Right(File, 1), vbHiragana) 24 Else 25 Core(Count, 1) = InputBox(LoadFile & "が読めませんでした。" & vbLf & _ 26 "平仮名で最初の読み仮名1文字を入力して下さい。", _ 27 "読み仮名の入力") 28 End If 29 Count = Count + 1 30 Loop 31 End If 32End Sub
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/01/23 19:01 編集