2024年5月17日金曜日

厚塗りのオーケストレーションから生まれる彩度の低い渋い音作りを、独自の魅力と理解するかどうかのことだろう - 庄司紗矢香(バイオリニスト)

        
最近はテレビが全くつまらなくなり、晩御飯の後で視ることもなくなりました。
上さんなどは、ドラマがあるとその時間帯だけテレビを点けて視聴する感じね。

昔は、家のリビングで、誰が視ているのかわからないのにテレビが点いていた。
チャンネルは、家族の好みで切り替えられたり、喧嘩になった時代が懐かしい。

もはや、つまらない以外の何者でもなくなったのが、テレビだという感じです。
その代わり、PCでユーチューブでも見ておけば、退屈しのぎにはなりますなあ。

チャンネルもたくさんあるし、収録時間も短い上に、後で視直すこともできる。
一人暮らしを始めた若者の部屋には、テレビが無いと言う話は当たり前の時代。

だから、この期に及んで、テレビ番組の話で盛り上がる気など毛頭ありません。
まあ、ユーチューブでチャンネルを検索しながら、暇つぶしで視るのが今時だ。

特に、クラシック音楽の作品を紹介する番組が豊富なので、時々聞いたりする。
今回、探し当てたのは、バイオリニストの庄司紗矢香さん独奏による協奏曲ね。

ドイツのフランクフルト放送交響楽団と共演ですが、シューマンの作品なんだ。
演奏される機会がさほど多くないのですが、それでも昔よりは増えて来ました。

録音に残しているソリストもいるぐらいなので、レアというほどでもないかな。
ただ、最近の演奏活動が少し地味目だった、庄司紗矢香が健在なのは良かった。

十代で、パガニーニ国際コンクールに優勝したのが、二十年以上も昔の話です。
それから、若い頃は盛んに活躍していて、ユーチューブ動画も多くありました。

ところが、その後は露出が減っていたような気もしましたが、最近は復調かな。
既に四十代になって、このまま年齢に応じた円熟味を増して欲しいと思います。

というわけで、最近はドラマなどでもシューマンの交響曲が紹介されていたな。
”さよならマエストロ”では、第3番”ライン”が使われていましたが、巷間ではオーケストレーションがうまくないと酷評される向きもある中で、今現在でも演奏される点で、作品としては完成されているからだろうとも思うのでした。



いいねと思ったら、三つポチっとね!
にほんブログ村 スキースノボーブログへにほんブログ村 スキースノボーブログ スキーへにほんブログ村 旅行ブログ 旅日記・旅の思い出へ
にほんブログ村    にほんブログ村      にほんブログ村 



2024年5月15日水曜日

実用になさないような関数の使い道を探そうてとして、諦めて代替策で乗り切ると言う現実 ー Kill関数(VBAマクロ)

          
VBAでコードを書いていて、ファイルを削除するコードでかなり苦労しました。
ロジックは、ファイル名を変更して保存後、元のファイルを削除する考えなの。

元のファイルもタイムスタンプが付いていて、名称が日々変わるので厄介です。
先ず、元ファイルをダウンロードフォルダーから、ブックのフォルダへコピペ。

それから、色々な操作の後で、作業をした日付のタイムスタンプを加えて保存。
この仕事は日課なので、元のファイルはどうしても作業後に削除しておきたい。

それで、ファイルの削除関数と言えば”Kill”ですが、問題はファイルの指定方法。
フルパスでファイル名を、ダブルコーテーション引用符で括っておく必要です。

 Kill "C:\Book1.xlsx"

 Sub test()
 Dim str As String
   str = ""
     str = str & "C:\作業フォルダ\"
       str = str & "Book1.xlsx"
   Kill str
 End Sub

このような記述がネットでよく見られますが、この括りを変数で扱えないのか。
シンプルな構文ですと、文字列変数で実際に代入して実行しても動作はします。

ただ、複雑なコードの中で書くと、この変数の指定をしても実行ができません。
そんな事態が発生してしまい、理由が良く分かりませんが、解決策が必要です。

考えられるのは、実行プログラムで削除するブックを、かなり操作しています。
元ファイルを日付付きで別に保存した後で、元ファイルを削除する手法なんだ。

ただ、挙動を観察すると削除された形跡がないので、動いているのか不明なの。
なので、色々考えた挙句、Name関数で元のファイルを別フォルダに移します。

この削除フォルダでファイル一覧を掛けて、全ファイルを削除すると言う手法。
これならば、Kill関数を使わなくても大丈夫で、代わりにFileSystemObjectだ。

Sub FileMove()
Dim FSO As Object, Fle As Object, str As String, str2 As String
str = ""
  str = str & ThisWorkbook.Path
    str = str & "\"
  str2 = ""
    str2 = str2 & ThisWorkbook.Path
      str2 = str2 & "\削除\"
        str2 = str2 & ""
  Set FSO = CreateObject("Scripting.FileSystemObject")
    For Each Fle In FSO.GetFolder(str).Files
      If InStr(Fle.Name, ThisWorkbook.Name) > 0 Then GoTo Skip
        str = str & Fle.Name 'InStr関数で、開いているブックを回避
          str = str & ""
            str2 = str2 & Fle.Name
              str2 = str2 & ""
        Name str As str2 'Name関数で同じファイル名で別フォルダに移動
Skip:
    Next Fle
    Set FSO = Nothing
End Sub

Sub FileDelete()
Dim FSO As Object, Fle As Object, str As String
  str = ""
    str = str & ThisWorkbook.Path
      str = str & "\削除\"
        str = str & ""
  Set FSO = CreateObject("Scripting.FileSystemObject")
    For Each Fle In FSO.GetFolder(str).Files
        Fle.Delete 'Kill関数を使わないで削除
    Next Fle
  Set FSO = Nothing
End Sub

この方法を実際に実行すると、フォルダ移動のファイルが削除されていました。
ただ、パスも含めたファイル名を、文字列変数で指定するので少しややこしい。

Kill関数に比べても複雑になりますが、ファイル指定が変数なので使いやすい。
というわけで、汎用性の高いコードは、なるべく変数を使って実行したいもの。

コードの記述が長くなりますが、一度サンプルを作っておけば、同じ事例が出ても使いまわせるわけで、コード記述のノウハウは、非常に重要なのだと分かったのでした。



いいねと思ったら、三つポチっとね!
にほんブログ村 スキースノボーブログへにほんブログ村 スキースノボーブログ スキーへにほんブログ村 旅行ブログ 旅日記・旅の思い出へ
にほんブログ村    にほんブログ村      にほんブログ村 



2024年5月13日月曜日

別のブックを開いて、そこからデータを引っ張ってくる手法をよく使いますが、それなりに工夫が必要だな ー オブジェクト変数(VBAマクロ) 

         
もし、複数ブックを開き、各々にある複数シートをVBAで操作するとします。
もちろんマクロを書いたブックは、コードだけを利用するプログラムなのです。

 Workbooks("ブック名").Worksheets(”シート名”).Range("A1")

基本的には、上のようなコードであれば、ブックとシートを特定できるのです。
ただ、記述が冗長になるし、変数を使って特定できれば記述は簡単になるんだ。

なので、開いているブックを特定するため、オブジェクトの変数を設定したい。
それと、操作したブック名にタイムスタンプをつけて、フィル名が変わるかも。

これを加味して工夫してみたのが、次のようなコードになり意外に役立ちます。
このコードの工夫ですが、Instr関数とオブジェクト変数の”Set”の使い方です。

Sub sample()
Dim wb As Workbook, wb1 As Object, wb2 As Object
  For Each wb In Workbooks
    If InStr(wb.Name, "ファイル名の先頭文字一部") = 1 Then Set wb1 = wb
    If InStr(wb.Name, "ファイル名の先頭文字一部") = 1 Then Set wb2 = wb
  Next wb
    Debug.Print wb1.Name
      Debug.Print wb2.Name
End Sub

それに、マクロ例文で、If文中で”Set”を定義づけても、特に問題はありません。
ちゃんと動作しますが、ネットの例文では、こういう書法の仕方がないんだな。

次に、InStr関数は、文字列の中に指定した文字列があるかどうかを判別します。
含まれていれば、何文字目かにあるか数値を表すので、この例では先頭の意味。

含まれていなければ、”0”になりますが、使い道のある関数なのでよく使います。
これでブックは特定できましたが、ワークシートも同じく変数で定義づけ可能。 

Option Explicit
Dim wb As Workbook, wb1 As Workbook, wb2 As Workbook
Dim ws As Worksheet, ws1 As Worksheet, ws2 As Worksheet, ws3 As Worksheet

Sub sample() '二つの開いているブックに変数で定義
  For Each wb In Workbooks
    If InStr(wb.Name, "UsrFrm") = 1 Then Set wb1 = wb
    If InStr(wb.Name, "ShuffleExcel") = 1 Then Set wb2 = wb
  Next wb
    Debug.Print wb1.Name
      Debug.Print wb2.Name
End Sub

Sub sample2() '定義された一つのブックの各シートに変数で定義
  For Each ws In wb1.Worksheets
    If ws.Name = "Sheet1" Then Set ws1 = ws
    If ws.Name = "Sheet2" Then Set ws2 = ws
    If ws.Name = "Sheet3" Then Set ws3 = ws
  Next ws
End Sub

Sub sample3() '定義された一つのブックの各シートに変数で定義
  wb1.Activate
    ws3.Activate
      Range("A1").Select
End Sub

上の構文は、プロシージャ共通の変数に設定するため、モジュール先頭で記述。
変数が各プロシージャへ渡り継がれて行き、最後にセル範囲を首得しています。

ところで、”Set”で定義するオブジェクト変数には、包含関係が存在しています。
上位のVariant型から、Object型、 特定のオブジェクト型へ固有の指定になる。

まあ、最低限、Workbook、Worksheet、Range、3つは覚えておきましょう。
もし、型の指定が難しかったら、ObjectもVariantでも構わないとは思います。

というわけで、コードはあくまでもサンプルに過ぎなくて実用には工夫が必要。
ネットで紹介したコードを見ても、教科書的なサンプルコードが多いだけなので、その組み合わせを工夫することで、自分にとって実用的なコードが見いだされるというわけなのでした。



いいねと思ったら、三つポチっとね!
にほんブログ村 スキースノボーブログへにほんブログ村 スキースノボーブログ スキーへにほんブログ村 旅行ブログ 旅日記・旅の思い出へ
にほんブログ村    にほんブログ村      にほんブログ村 



2024年5月11日土曜日

路地より用土の少ない鉢植えですから、肥料の施しなどいろいろ勘案しまくる自分 ー ウマノスズクサ(ガーデニング)

        
秘密にしているウマノスズクサの繁殖地では、金網を伝いながら成長が著しい。
滅多に花が咲きませんが、数年前、開花したのでひょっとして今年はあるのか。

そんな期待を寄せている中で、ここの株は葉の形状の変異が際立っていますな。
耳の形はミッキーマウスかもしれませんが、ずい分と細長い葉になっています。

ここから挿し芽をしましたが、根付いてくれても三年目に枯れてしまいました。
なので、捲土重来というわけではないが、別の採取地から挿し芽株を採取した。

こちらは、山野草の専用土など、十二分に用意をして臨んだので成功率が高い。
挿し芽株のおよそ半分が生き残って、植え替えてからも春には芽を出しました。

ただ、一株が芽を出さなかったので、これはもうダメだったのかと思うと残念。
それでも、十株ほどが生き残ったので、御の字だと思うことに致しましょうか。

こちらの株は、オーソドックスにありきたりな葉の形状で、すくすく成長中だ。
ただ、市販品の山野草用土は、短期間で肥料が切れるみたいで追い肥えを敢行。

       
JOYアグリスの油粕肥料ですが、味の素㈱と㈱J-オイルミルズとの共同開発だ。
アマゾンでも高評価を付ける人が多かったので、早速購入したと言う分けです。 

それで、発芽から茎がしっかりと伸びてきてひと段落ですが、後は肥料の追加。
頻度が良く分からなくてネットでググってみると、ひと月の間隔で撒くとある。

四月の何時に撒いたか忘れてしまいましたが、五月の中頃には撒いてみますか。
その後、梅雨に入ってから蒸し暑くなってしまうと、少し控えておくのが適当。

植物も、それほど栄養分を吸収できないらしく、わざと肥料を抑えていく意味。
その代わりと言ってはなんだが、二三日に一回ぐらいで液肥を施すと致します。

夏場には、ゴーヤの育成で、たっぷり液肥を使うので、切り替えるにはグッド。
自分的には、住友化学園芸の”花工場”を使いますが、最近のは成分が新組成だ。

 窒素、リン、カリウムの配合組成が新しくなってパワーアップしたと思いたい。
というわけで、これに住友化学園芸の”エ―ドボールCa”も使うことにしました。

もちろん、昨年の成長で確認できた植物活力剤”リキダス”の希釈液も折に触れて散布したり、”メネデール”も葉面撒布してサポートしますので、ウマノスズクサも滅多に咲かない花が見られるまで、すくすくと成長してもらいたいと思うのでした。



いいねと思ったら、三つポチっとね!
にほんブログ村 スキースノボーブログへにほんブログ村 スキースノボーブログ スキーへにほんブログ村 旅行ブログ 旅日記・旅の思い出へ
にほんブログ村    にほんブログ村      にほんブログ村 



2024年5月9日木曜日

人生百年と言えども75歳を待たずに死亡する有名人が、最近、増えてきましたが、無事乗り越えるには、健康維持がとても重要 ー 65歳の壁(健康問題)

       
嘱託身分の自分ですが、もうすぐ誕生日だから雇用契約も切られる身の上です。
だけど、契約更改が誕生日以降に結ばれたので、余命いくばくかはありそうだ。

それで、最近つくづく思うのは、65歳の壁に対する表現を感じてしまう点です。
それは、自治体の公的施設に行くと、使用の際に利用簿に記入を求められます。

この中に、年齢で丸印を付ける項目が分かれていて、その境界が65歳未満なの。
なんだか、65歳以上の人は、別扱いにチェックを入れるのですが、記入は自由。

なので、年寄り扱いされたくないので、誕生日以降は、記入するのを止めます。
これまで、利用者数とか、施設の運営に寄与するかと思って記入していました。

だけど、65歳など未だ若いんだし、年寄りに押し付けられるのはけしからん話。
そんな風に思っていましたが、最近、七十歳前後で逝去される有名人が多いな。

八代亜紀、谷村新司、鳥山明さんなど、その年齢前後ですが、もっと若い人も。
ちびまる子の声優だったTARAKOさんは、何と63歳で少し若すぎると思った。

それで、平均寿命は、厚生労働省発表の”簡易生命表(令和4年)”で分かるの。
令和4年だと、日本人の平均寿命は、男性が81.05歳、女性が87.09歳でした。

この年齢を前にして、はるかに若く亡くなっている有名人を見ると、不思議だ。
どうしてかと思ってたら、ネットでもそのようなネタ記事がUPしておりました。

まあ、オーストラリアの研究では、芸能人、スポーツ選手は早死の傾向とある。
他方、統計だと百歳まで生きる確率は二割になり、5人に1人が長寿のようです。

要するに、全員がその年齢まで生きられるかは、保証の限りではないと言う事。
百歳まで生きる人もいれば、平均では、半分がその前にくたばる人という分け。

働き過ぎて不摂生が祟って、お迎えが早いと言うのは、芸能人、運動選手かな。
そう思うと、自分はサラリーマン稼業でモーレツに働いたわけでもなく大丈夫。

というわけで、やはり65歳リタイアで、残りの人生は好きなことをするべきだ。
後何年の命とか、数えられるまでになって来たのを考えると、残り少ない自分の人生を少し寂しい気もするものですが、だからこそ、日々の健康に留意して楽しく毎日を送ろうではないかと、決意を新たにするのでした。



いいねと思ったら、三つポチっとね!
にほんブログ村 スキースノボーブログへにほんブログ村 スキースノボーブログ スキーへにほんブログ村 旅行ブログ 旅日記・旅の思い出へ
にほんブログ村    にほんブログ村      にほんブログ村