• 車種別
  • パーツ
  • 整備手帳
  • ブログ
  • みんカラ+

カブゴンのブログ一覧

2020年05月10日 イイね!

一生使えるカーオーディオのプレイリストを作るツールの開発を始めました

一生使えるカーオーディオのプレイリストを作るツールの開発を始めましたこんばんは。
明日から会社でお仕事。カブゴンです。

いきなりですが、僕は、車内でかける音楽に並々ならぬこだわりを持っています。
季節や昼夜、市街地かワインディングか等、それぞれのシーンに合わせてその都度フォルダを変えます。
しかし、自宅にある音楽のマスターデータは、曲を購入した月ごとにフォルダ管理しています。
ということは、カーオーディオに入れてあるSDカードのデータと自宅のSSDのデータで齟齬が発生してしまいます。そして、SDカードに入っているデータのフォルダ構成はSDカードのパソコンで中身を開かないとわからない状態になっています。
というわけで、自宅にあるマスターデータと車用SDカードデータの連携をきちんとデータベースで管理しながら、柔軟にSDカード内のフォルダ構成(プレイリスト)を変更できるツールをExcelで作ってやろうという企画を開始しました。完成すれば一生使える上に、応用すればスマホのGooglePlayMusicのプレイリストまでも連携させられる可能性を秘めているので結構便利そうです。。。

今日は、ダイアログボックスでフォルダを選択したら、一斉に、曲名とアーティスト名、フルパスをシートに書き込むようにするところまで作りました。その中で各ファイルのアーティスト名の取得に関して、「GetDetailsOf」というコードを使うのですが、ネットにもVBA辞典にも全然その情報が無くて、何回修正してもエラーの連発だったので疲れました。最後は、閉じ括弧の位置が違うだけのことに気づかずに30分以上苦戦してしまいました。(´;ω;`)
ホント、数学苦手なのに頭を使い過ぎて脳みそがブローするかと思いました。笑

音楽の趣味がバレてしますので恥ずかしいですが、今日の成果はこんな感じです。
alt


最後に備忘録としてコードも…
―――――――――――――――――――――――――――――――――――――――
Sub ファイルパス一覧作成()

    '≪A3以降のファイル情報を書き込むセルとD1セルを最初にクリアにする≫
    Range(Cells(3, 1), Cells(Rows.Count, Columns.Count)).Clear
    Cells(1, 2).Clear
    
  
    '≪取得したいフォルダをダイアログボックスを開いて選択する≫
    Dim 指定フォルダのパス As String
  
    With Application.FileDialog(msoFileDialogFolderPicker)
        .Title = "ファイル一覧を作成したいフォルダを選択してください"
        If .Show = -1 Then
            指定フォルダのパス = .SelectedItems(1)
            Cells(1, 2).Value = "情報を取得するフォルダ:" & 指定フォルダのパス
        Else
            MsgBox "中止しました。"
            Exit Sub
        End If
    End With
  
  
    '≪ファイルパス一覧を作成する≫
    Dim myFSO As New FileSystemObject
    Dim myRootFolder As Folder

    Set myRootFolder = myFSO.GetFolder(指定フォルダのパス)

    Cells(3, 1).Select 'ファイル情報を表示する最初のセルを選択する

    ファイルパス書出 myRootFolder '後述の「ファイルパス書出」を呼び出して実行する。
    
    Set myFSO = Nothing 'メモリリークによるエラーを防ぐためにFSOを終了させる
    
       
    '≪拡張子なしのファイル名を書き込む≫
    Dim objFSO As New FileSystemObject
    Dim 拡張子無ファイル名 As String
    Dim フルパス As String
    Dim 行数 As Long
    Dim 最終行 As Long
    
    最終行 = Cells(Rows.Count, 1).End(xlUp).Row
    
    For 行数 = 3 To 最終行
         
        フルパス = Cells(行数, 5).Value
        拡張子無ファイル名 = objFSO.GetBaseName(フルパス)
        Cells(行数, 2).Value = 拡張子無ファイル名
        
    Next 行数
    
    Set objFSO = Nothing  'メモリリークによるエラーを防ぐためにFSOを終了させる
    
    
    '≪アーティスト名を書き込む≫
    Dim Shell As Variant
    Dim Folder As Variant
    Dim 拡張子付ファイル名 As Variant
    Dim フルパスその2 As Variant
    Dim ファイルのフォルダパス As Variant
    Dim 行数その2 As Long
    Dim 最終行その2 As Long

    最終行その2 = Cells(Rows.Count, 1).End(xlUp).Row

    For 行数その2 = 3 To 最終行その2
        
        拡張子付ファイル名 = Cells(行数その2, 1).Value
        フルパスその2 = Cells(行数その2, 5).Value
        ファイルのフォルダパス = Replace(フルパスその2, 拡張子付ファイル名, "") 'フルパスから拡張子付ファイル名を抜くようにVBAのReplace関数を使った
        Set Shell = CreateObject("Shell.Application")
        Set Folder = Shell.Namespace(ファイルのフォルダパス)
        Cells(行数その2, 3).Value = Folder.GetDetailsOf(Folder.ParseName(拡張子付ファイル名), 20) 'アーティスト名の取得(引数20番がアーティスト名)と書き込み
        
    Next 行数その2

    Set Shell = Nothing  'メモリリークによるエラーを防ぐためにFSOを終了させる
    Set Folder = Nothing  'メモリリークによるエラーを防ぐためにFSOを終了させる
    
    
    '≪最上段を表示した状態にしておきたいのでA3セルを選択状態にする≫
    Cells(3, 1).Select
    
     
    '≪最後に書き出しが完了したことをお知らせする≫
    MsgBox "ファイル情報の書き出しが完了しました。"

End Sub

Sub ファイルパス書出(ByRef myParentFolder As Folder)

    Dim myFolders As Folders
    Dim myFolder As Folder
    Dim myFiles As Files
    Dim myFile As File

    Set myFolders = myParentFolder.SubFolders

    If myFolders.Count <> 0 Then
        For Each myFolder In myFolders
            ファイルパス書出 myFolder
        Next myFolder
    End If

    Set myFiles = myParentFolder.Files

    If myFiles.Count <> 0 Then
        For Each myFile In myFiles
            With ActiveCell
                .Value = myFile.Name  'ファイル名を取得する
                .Offset(0, 4) = myFile.Path 'フルパスを取得する
                .Offset(1, 0).Select
            End With
        Next myFile
    End If
    
End Sub
―――――――――――――――――――――――――――――――――――――――

おしまい。
Posted at 2020/05/10 22:49:34 | コメント(0) | トラックバック(0) | VBA備忘録 | 日記
2020年05月09日 イイね!

VBA備忘録 ~一覧から大量のフォルダを一括で作る~

VBA備忘録 ~一覧から大量のフォルダを一括で作る~こんにちは。
今日は『水曜どうでしょう』を見ながら爽やかな(?)朝を迎えました。カブゴンです。

『水曜どうでしょう』の中で個人的に好きな企画は、『シェフ大泉 夏野菜スペシャル』です。
『ど~も。奥さん。知ってるでしょう? 大泉洋でございます。』
『おいパイ食わねぇか?』
これは名言中の名言ですね。笑

さて、今日もVBA備忘録です。
エクスプローラーやサーバー上で大量にフォルダを作りたいとき、ありますよね??
その作りたいフォルダ名が連番のような規則性を持ったものだったり、あるいは、他のデータベースから引っ張ってきたものだったり。。。
このような時に、Excelで作った一覧から一括でフォルダが生成されたら便利だなぁと思い作ってみました。

コードはコチラ↓↓
―――――――――――――――――――――――――――――――――――
Sub 一覧からフォルダを一括作成するマクロ()
     
    '作成フォルダー一覧を作成したかどうかの確認のダイアログボックスを開く
    Dim 答え As Integer
    答え = MsgBox("作成フォルダ一覧.xlsに作成したいフォルダの名称を書きましたか?", vbYesNo + vbQuestion + vbDefaultButton2, "確認")
    
    '「はい」が押された場合はフォルダ作成を実行する
    If 答え = vbYes Then
    
        '作成フォルダ一覧.xlsのパスを定義する
        Dim 作成フォルダ一覧のパス As String
    
        作成フォルダ一覧のパス = ThisWorkbook.Path & "\作成フォルダ一覧.xls"
    
       '作成フォルダ一覧を開く
        Workbooks.Open Filename:=作成フォルダ一覧のパス
    
        '作成フォルダ一覧の最終行を取得する
        Dim 最終行 As Long
        最終行 = Cells(Rows.Count, 1).End(xlUp).Row
        
        'フォルダを作成する
        For i = 2 To 最終行
            MkDir ThisWorkbook.Path & "\フォルダ作成先\" & Cells(i, 1).Value
        Next

        '作成フォルダ一覧.xlsを閉じて完了のメッセージを表示する
        Workbooks("作成フォルダ一覧.xls").Close
        MsgBox "完了しました。【フォルダ作成先】フォルダを確認してください。"

    '「いいえ」が押された場合はフォルダ名称の入力を促すメッセージを表示する
    Else
        MsgBox "作成フォルダ一覧.xlsに入力してから再度このVBAを実行してください。"
        
    End If

End Sub
―――――――――――――――――――――――――――――――――――

動作説明
①フォルダ構成・ファイル構成は以下と同じにしてください(そうでないと正しく動きません)。
alt


②生成したいフォルダ名を【作成フォルダ一覧.xls】のA2セルから縦方向に記述してください。
alt


③コードが記述してある実行ファイルでVBAを実行してください。

④【フォルダ作成先】フォルダに生成が完了されましたので、適宜必要な場所にフォルダを移してください。
alt


という感じです。
ちなみにExcelのバージョンは2010です。今回のコードは単純なので最新のExcelでも動くと思いますが、検証はしていません。
今回のVBAは、全ての動作が限られたフォルダの中だけで実行されるようにしてありますが、一応実行させる際は自己責任ということでお願いいたします。

おしまい。
Posted at 2020/05/09 13:35:49 | コメント(0) | トラックバック(0) | VBA備忘録 | 日記
2020年05月07日 イイね!

VBA備忘録 ~表の最終行を取得する~

こんばんは。
再び在宅勤務になりました。カブゴンです。
やはり在宅勤務は己との戦いです。

さて、今日から新企画です。
私の仕事では、データベースをよく取り扱います。
使うソフトウェアとしては、Microsoft AccessやExcelが多いです。
しかし、関数で事足りることも多々あるのですが、やっぱりVBAを使った方が早いことも多いです。
しかし、VBAは複雑なコードが多すぎて、数日前に覚えた事でもすぐ忘れてしまいます。
そもそも、コードを覚えるよりも、書籍やホームページのどこに何が書いてあるかを覚えて、その都度参照した方が効率が良いと思います。
というわけで、自分の備忘録がてら、このブログに頻出度の高いコードを綴っていこうと思います。

第1回はExcel VBAにおける表の最終行取得です。
このコードはデータベースから個別帳票に転記するときに必要になります。
繰り返しの構文「For」を使う時の終了を記述するためには必須です。

Dim 最終行 As Long

最終行 = Cells(Rows.Count, 1).End(xlUp).Row

セル(A1048576) から Ctrl+↑のセル の 行番号

詳しくは「エクセルの神髄」のホームページを参照です。

おしまい。
Posted at 2020/05/07 19:46:24 | コメント(0) | トラックバック(0) | VBA備忘録 | 日記
2020年05月04日 イイね!

撤退準備

撤退準備こんにちは。
『月刊少女野崎くん』の視聴を始めました。カブゴンです。
alt
いつもの後輩女性社員おすすめの作品で、ギャグ漫画です。
この作品は女性の少女漫画作家による作品で男性キャラクターがイケメンです。ただし、クセがすごいです。笑


さて、今日は株のお話です。
『株は買うよりも売る方が難しい』というのが定説です。
例えば、保有している株の価格が下落して買付値を下回る状態(含み損)に陥ると「持ち続ければいつかはもう一度値を戻すだろう」と考えてしまうし、価格が上昇したらしたで「もっと伸びろ!」と欲が出るし、いったい『いつ売れば(現金化すれば)良いんだ?』ってなることがしばしばあります。
現在のコロナショックの中で、3月19日に16,552円の底値に達した日経平均株価は驚異的な回復力で4月30日に2万円まで回復しました。ここまでは事実ですが、これから先の株価については世の中では予想が二分しています。
それは、もう一度下落して『二番底』に向かっていく悲観論と、このまま回復基調が続く楽観論です。
どちらを支持するかは人それぞれですが、僕は悲観論を支持します。
理由は、コロナショックが実体経済に影を落とすのはまだまだこれからだからです。もうすでにソフトバンクグループが巨額赤字の決算を発表し、先週はアイシン精機をはじめとした自動車関連企業が軒並み大幅減益を発表しました。2019年度本決算でこれなのですから、2020年度本決算も停滞するのは明白です。さらにオーストリアの大手航空会社は倒産し、アメリカおよび日本国内の航空会社も瀕死の状況です。
これだけ市中にお金が回らない中で、2万円を付けた日経平均が妥当かと聞かれれば僕は「それはハリボテです」と答えます。
というわけで、自分の保有銘柄の2019年度本決算が出た時点で一斉に株を売却します。そして2番底を待ってその時にまた買い戻します。


さて、上記に関連して、株の売り時を計る指標は、これまでに色々と発明されています。「デッドクロス」と呼ばれる毎日の終値を結んだ移動平均線からはじき出させるものがその最たるものかと思います。僕ももちろん参考にしますが、僕が最も注目するのはVIX指数です。この指数は米国株価指数(S&P500)の値動きの激しさを表すものです。値動きの激しさを表すだけのものですから「激しく上昇する」パターンも含まれているのですが、いずれにせよ景気が不安定な状態を表していることから「恐怖指数」と呼ばれます。実際に恐怖指数が上がると悪い方に流れることが多い気がします

今「気がします」に下線を引きました。「気がします」は本当か検証したくなるのは僕だけでしょうか。もしこれが本当なら、恐怖指数が上がったときに株を売れば損失を抑えられるのですから、私、気になります!!!
alt


というわけでやってみました。
alt

日経平均ではなく、東証株価指数を使いました。理由は、日経平均に挙がっている225銘柄の株価は高すぎて僕にはあまり買えないので、東証全体の指標を使うことにしたからです。
結果は、恐怖指数(VIX)と東証株価指数は負の相関がある(-0.44程度)という結果でした。つまり、恐怖指数が上がればまぁまぁの確率で東証株価指数が下がるということです。
う~ん。もうちょっと、相関係数が-1に近いかと思ったのですが、恐怖指数(VIX)が低い値で停滞しているだけでも株価が上がるので、思ったより相関係数が出なかったですが、少なくとも下落や恐慌時はその目安にはなりそうですね。

先週末、恐怖指数(VIX)が急上昇したので、決算が出たらとっとと一時撤退します。

おしまい。
Posted at 2020/05/04 12:02:19 | コメント(0) | トラックバック(0) | マネーの話 | 日記
2020年05月03日 イイね!

夜景ランキング第8位 その2

夜景ランキング第8位 その2こんにちは。
コロナの影響で仕事が自宅待機になっている母親が、暇すぎて毎日NETFLIXでアメリカドラマや『鬼滅の刃』を見漁っています。
どうもカブゴンです。

さて、僕については先週は会社に出社して仕事をしていましたが、ゴールデンウィークに突入し、家でゴロゴロしたり、散歩したり、洗車したりしながら生活しています。世の中「コロナストレス」という言葉が蔓延していますが、普段から家でゴロゴロと散歩しかしてこなかった僕にとってはあまり変わりません。


さて、このゴールデンウィーク、早速、『ココロコネクト』をイッキ見しました~。
alt

この作品、皆それぞれが人知れず抱える過去のトラウマや心の弱さを突いたシーンが多くて、観ているこちらの心をもえぐられてしまう作品です。
登場人物同士が互いにぶつかり合い、心を締め付けられてしまうような場面もあるのですが、そこが見どころで、次の話が見たくなる作品でした。


それでは前置きが長くなりましたが、今日のテーマ「夜景ランキング第8位」です。
前回も第8位でしたが、同位ということです。

第8位 品川プリンスホテル
alt


alt


このホテルは日本最大級の客室数(3,500超)を誇るホテルです。
楽天トラベルで予約する際には、高層階を約束してくれるプランがあり、そのプランで宿泊しました。昨年のゴールデンウィークに泊まりましたが、楽天ポイントが10倍付いたので1泊あたり実質11,000円程度で泊まれました(食事なし)。東京タワーを含む港区方面の夜景を眺められる部屋で大型連休にこの値段ならコスパは高いと思います。

おしまい。

ここまでの夜景ランキングはコチラ↓↓

第20位-第19位

第18位-第17位

第16位

第15位

第14位

第13位

第12位

第11位

第10位

第9位
第8位
Posted at 2020/05/03 13:43:42 | コメント(0) | トラックバック(0) | お出かけ | 日記

プロフィール

「今年の桜 http://cvw.jp/b/2574415/44990156/
何シテル?   04/04 16:54
カブゴンと申します。 日記をつけてみようと思い、みんカラを始めました。 よろしくお願いします。
みんカラ新規会員登録

ユーザー内検索

<< 2020/5 >>

     12
3 456 78 9
101112131415 16
1718192021 2223
24252627282930
31      

リンク・クリップ

リコールとナット 
カテゴリ:その他(カテゴリ未設定)
2019/12/07 16:08:25

愛車一覧

ホンダ スーパーカブ90 ホンダ スーパーカブ90
ホンダの超ロングセラー、スーパーカブの90ccモデルに乗っています。主に通勤用です。 4 ...
ホンダ フィット ホンダ フィット
ホンダ フィット(GD3型)に乗っています。 この車は週末にお出かけするのに乗るのがメイ ...
マツダ ロードスター マツダ ロードスター
マツダが『人馬一体』をコンセプトに開発した2シーターオープンカーであるロードスターの二代 ...
トヨタ アルテッツァ トヨタ アルテッツァ
安かったので衝動買いしてしまいました。 青色のアルテッツァ(RS200, 5AT)です。 ...
ヘルプ利用規約サイトマップ
© LY Corporation