' VBScript source code ' スタートアップ関数の呼び出し Call Main() ' この関数がスタートアップ関数 sub Main() dim iTunesApp dim Tracks dim NumOfTracks dim Track dim confirm dim title, album, artist, albumartist ' iTunesオブジェクトのインスタンスを生成 set iTunesApp = CreateObject("iTunes.Application") ' 選択中のトラック達を取得 set Tracks = iTunesApp.SelectedTracks ' 選択されているトラックの数を取得 NumOfTracks = Tracks.Count ' 各トラック後に処理を行う for i = 1 to NumOfTracks ' トラック情報の取得 set Track = Tracks.Item(i) ' 一度、tempという名前にそれぞれの値を置き換えるため ' 元々の値を保存しておきます ' これは、全角半角が変更されたぐらいではiTunesが変更として ' 認識してくれないため、苦肉の策です title = Track.Name album = Track.Album artist = Track.Artist albumartist = Track.AlbumArtist ' 一時的にtempという名前に置き換える Track.Artist = "temp" Track.Name = "temp" Track.Album = "temp" Track.AlbumArtist = "temp" ' 並び替え項目が残っていると同一アルバムやアーティストなのに ' 分割して表示されるため、空白で初期化します ' ただし、以降で変換後の値をセットすると、その値で初期化される ' みたいです (未確認) Track.SortName = "" Track.SortAlbum = "" Track.SortArtist = "" ' 変換された値を書き込む Track.Artist = Convert(artist) Track.Name = Convert(title) Track.Album = Convert(album) Track.AlbumArtist = Convert(albumartist) next ' 表示を更新?しているようです Track.Reveal() ' 変換完了を通知 MsgBox "変換が完了しました" end sub ' 全角文字を半角文字へ変換する関数 function Convert(str) dim c dim n dim newstr newstr = "" for i = 1 to len(str) c = Mid(str, i, 1) n = AscW(c) ' 変換される文字は文字コードが FF01~FF5E のもの if n >= &hff01 and n <= &hff5e then ' FEE0引くとちょうどASCII文字の部分に変換される c = ChrW(n - &hfee0) end if ' 空白については上記で処理できないため、別途ここで処理 if n = &h3000 then c = " " end if ' 文字列を再形成 newstr = newstr + c next ' 変換された値を返す Convert = newstr end function