2024年11月29日金曜日

新しくパソコンを買えば、環境構築をしなくてもすぐに利用できる開発環境が用意されている分けさ ー Windows PowerShell(VBAマクロ)

        
ウインドウズに実装されている"Power Shell"は、少しなじみの薄い存在です。
これと違って、コマンドプロンプトの入力画面なら、使った人もいるでしょう。

違いは何かと言えば、後から追加されて機能が強化されたのが”Power Shell”。
より高度な操作が可能であり、.NET Frameworkを利用することができます。

まあ、Webアプリケーションの開発で基本的な枠組みや機能をまとめたものね。
なので、プロンプトより強力なスクリプトを作成することができて便利なのだ。

システム管理や自動化などに利用されることが多いので、覚えると便利かもな。
それで、このパワーシェルは圧縮ファイルを作るコマンドが実装されています。

ならば、VBAで圧縮ファイルを作ってしまえと試しにコードを書いてみました。
ブックを起動したら最小化して、”InputBox”に圧縮するファイルを入力します。

なので、あたかもアプリが動いている感じですが、ファイル名は固定しました。
もし、圧縮するファイル名を指定するのなら、”InputBox”を追加してください。

なぜ、セルからフルパスのファイル名を引っ張らないのかは、?マークの存在。
つまり、文字列をセルへ入力すれば、先頭にシングルコーテーションが付くな。

これを取っ払うのがややこしくて、テキストをまま取得する手法を使いました。
それで、ADODBへ参照設定を行わないと、このブックは動いてくれないんだ。

参照設定ダイアログから、”Microsoft ActiveX Data Objects Library”を選ぶ。
というわけで、バージョンは、”6.1”の最新にしておけば問題なく動作するよ。

それから、解凍する場合も”powershell expand-archive”と似たようなコマンドなので、次回、チャレンジしようと思う自分なのでした。

☆サンプルコード
’ThisWorkbookの記述
Private Sub Workbook_Open() 'ブックを最小化して自動実行
  Application.Visible = False
    Call ArchiveOutput_ANSI   '処理を記述
      Call RunBatShell
        Application.Visible = True
            Application.Quit '圧縮ファイル保存が終わればブックを閉じる        
End Sub

'Module1の記述
Sub ArchiveOutput_ANSI() 'ANSIでファイル出力・ANSIとShift-Jisは同じ
Dim i As Integer, str As String, ado As Object  'ADODB.Stream生成
  Set ado = CreateObject("ADODB.Stream")
    ado.Charset = "Shift-Jis" '扱う文字コードの設定(ANSI)
      ado.Open 'ADODB.Stream開く
   ado.WriteText "@echo off", adWriteLine 'adWriteLineは改行で挿入
     ado.WriteText BatScriptMaking(), adWriteLine '内容保管
str = ""
  str = str & Environ("homedrive")
    str = str & Environ("homepath")
      str = str & "\Downloads\archive.bat"
    ado.SaveToFile str, 2 'ADODB.Streamの保管内容を保存
  ado.Close 'ADODB.Streamを閉じる
End Sub

Function BatScriptMaking() As String '関数プロシージャ
Dim str As String, str2 As String, str3 As String
str = ""
  str = str & Environ("homedrive")
    str = str & Environ("homepath")
      str = str & "\HOGEHOGE.bak" 'ダミーのファイル名を参考に表示 
str2 = ""
  str2 = str2 & Environ("homedrive")
    str2 = str2 & Environ("homepath")
      str2 = str2 & "\Documents\Compressed.zip"
str3 = ""
  str3 = str3 & "powershell compress-archive -Path "
    str3 = str3 & InputBox("フルパスでファイル名", "ファイル名", str)
      str3 = str3 & " -Force -DestinationPath "
        str3 = str3 & str2
          str3 = str3 & ""
  BatScriptMaking = str3
End Function

Sub RunBatShell() '保存したバッチファイルをShell関数で起動
Dim dProcessId  As Double, str As String
  str = ""
    str = str & Environ("homedrive")
      str = str & Environ("homepath")
        str = str & "\Downloads\archive.bat"
    dProcessId = Shell(str)
End Sub



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



2024年11月27日水曜日

コマンドプロンプトをDOS時代から使ってきましたが、より高度な操作が可能人あったのだと実感 ー PowerShellのフォーム(ウインドウズ)

       
冒頭の入力フォームは、Windowsに実装されたPowerShellで作ってみました。
どうも、ウインドウズには、この手のフォームのオカズが仕組んであるみたい。

エクセルのVBAを起動して、ユーザーフォームで作ったのとそっくりさんです。
というより、VBAがウインドウズのフォームを引っ張って来ているのでしょう。

今までは、エクセルのマクロに専念して、仕事でプログラムを組んできました。
ただ、開発されて既に三十年の言語ですから、64ビット化からも距離があるな。

マイクロソフトもOfficeにVBAを残すと言ってはいても、古めかしい感じです。
そう思うと、他に代用できるアプリがないかと、たどり着いたのがこの言語ね。

まあ、ウインドウズでアプリケーションソフトウェアを作るのが目的の言語だ。
簡易的なプログラミング言語と謳ってはおりますが、VBAよりは格段に難しい。

それでも、Linuxの記述とか面白半分で触っていたので、何とか勉強中なんだ。
要するに、Linux用のエイリアス(別名)のコマンドが搭載されていたりする。

加えて、斜め読みしていたC#言語の記述なんかと、雰囲気がよく似ています。
そこで、ネットから寸借したフォームのコードを、参考がてら紹介してみます。

入力ボックスに入力された値を、パワーシェルの画面に出力するだけのコード。
それでも、変数の設定になっていて、変数渡しの拡張性に期待しつつ奮闘中だ。

とうわけで、パワーシェルを起動させて、このコードを貼り付けてみて下さい。
次にエンターキーで実行すると、ちゃんと入力フォームもされるのが分かるな。

その一方で、VBAのユーザーフォームと違って、フォームの表示位置を細かく指定することができたりして、なかなか痒い所に手が届く記述なのだと、感心してしまう自分がいるのでした。

※サンプルコード
# ユーザーフォーム作成(ZIPファイルのフルパス入力)
Add-Type -AssemblyName System.Windows.Forms  # アセンブリ読み込み
  Add-Type -AssemblyName System.Drawing
$form = New-Object System.Windows.Forms.Form  # フォーム作成
  $form.Text = "圧縮したいファイル"
    $form.Size = New-Object System.Drawing.Size(280,200) 
      $form.StartPosition = "Manual"
        $form.Location = "100,100"
$OKButton = New-Object System.Windows.Forms.Button  #OKボタン設定
  $OKButton.Location = New-Object System.Drawing.Point(40,120)
    $OKButton.Size = New-Object System.Drawing.Size(75,30)
      $OKButton.Text = "OK"
        $OKButton.DialogResult = "OK"
# 列挙子名:None, OK, Cancel, Abort, Retry, Ignore, Yes, No
$CancelButton = New-Object System.Windows.Forms.Button  #キャンセルボタン
  $CancelButton.Location = New-Object System.Drawing.Point(130,120)
    $CancelButton.Size = New-Object System.Drawing.Size(75,30)
      $CancelButton.Text = "Cancel"
        $CancelButton.DialogResult = "Cancel"
# 列挙子名:None, OK, Cancel, Abort, Retry, Ignore, Yes, No
$label = New-Object System.Windows.Forms.Label  # ラベルの設定
  $label.Location = New-Object System.Drawing.Point(10,30) 
    $label.Size = New-Object System.Drawing.Size(250,20) 
      $label.Text = "フルパスでファイル名(拡張子付)で入力してください"
$textBox = New-Object System.Windows.Forms.TextBox  #入力ボックス設定
  $textBox.Location = New-Object System.Drawing.Point(10,70) 
    $textBox.Size = New-Object System.Drawing.Size(245,50) 
$form.AcceptButton = $OKButton  # キー・ボタン関係
  $form.CancelButton = $CancelButton
$form.Controls.Add($OKButton)  # ボタン等をフォーム追加
  $form.Controls.Add($CancelButton)
    $form.Controls.Add($label) 
      $form.Controls.Add($textBox)
# フォームを表示させ、その結果を受け取る
$result = $form.ShowDialog()
# 結果による処理分岐
if ($result -eq "OK") {
  $x = $textBox.Text
$x
}



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



2024年11月25日月曜日

個人差もあるようで、耳で聞くことができるレベルよりも高い音を流したとして、年寄りには聞こえないから関係ないよ ー 超音波式ネズミ駆除器(ガーデニング)

       
ベランダに夜間出没するノネズミの活動が、いまだに衰えを知らない感じです。
最近は、季節が冬に向かって夜間の気温も下がってきたのでネズミも寒かろう。

だって、ネズミは寒さに弱い生物でして、十度以下の気温には耐えられません。
冬眠しない動物ゆえ、動けなくなって死んでしまうこともあるというお話です。

それで人間が居心地の良いと思う温かい空間は、ネズミにとっても住みやすい。
人家でも、夏よりも冬の方が暖かいのは事実で、侵入されやすい傾向にあるの。

数匹でも侵入を許してしまえば、あっという間に繁殖して駆除が大変なんだな。
通年で繁殖はしますが、冬を過ぎてピークは春以降の時期が多く、要注意です。

ただ、我が家でベランダに出てくるのを考えると、網戸を破って入られないか。
そんな心配が高まってきまして、ならばとネズミ駆除の追加対策を考えてみた。

臭いで駆除する忌避剤は設置済みですが、他にネズミが嫌なものないだろうか。
音ではどうかと思ってググってみると、高周波の音をどうも毛嫌いするようだ。

つまり、人の耳では聞き取れない20キロヘルツ以上の音を流して続けること。
野生の動物ですから、微弱な音量を流せば十分なのではないかと考え始めます。

アマゾンで掲載されている商品を見ると、大きなスピーカー付でもありません。
コンセント挿しの蚊取り器みたいな商品もありますが、使いやすさはUSBだな。

細いUSBケーブルを這わせて、リビングのサッシ窓を閉じてもピシッと閉まる。
なので、この給電方式の商品をアマゾンで注文しましたが、驚きは商品名です。

         
正式な商品名よりは効果と効能の羅列だけで、平均レビューが4.6の商品だ。
今回は、アマゾンでは珍しいアウトレット商品で、一割ちょっとのお値打ち品。

というわけで、発注したお客さんが受け取らなかった商品だろうと思いました。
百五十件を超えるレビューを読んでみてから注文したのですが、なんとなく効いているという評価も含めて、4以上のコメントがほとんどだったので、この程度の出費ならダメ元でもと購入してみたということなのでした。



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



2024年11月23日土曜日

ナミアゲハは、英語ではChinese swallow tailと呼んでいて、訳してみると”中国の燕尾”なんだがいかにも優雅な名付け方 ー アゲハ三齢幼虫(昆虫観察)

        
今年の夏は、異様に熱くてベランダの日よけのシェードも張りっぱなしでした。
このため、ベランダで栽培している鉢も、多くがシェードの内側になりました。

特に、アゲハ蝶が好んで産卵に来る、ヘンルーダの低木も外光から遮られます。
蝶にとってシェードがどうも邪魔になるらしくて、卵を産み付けに来ないんだ。

シェードがない梅雨の頃は一度産卵に来てくれましたが、その後は音沙汰無し。
それにベランダの隅にある小みかんの低木も、幼虫に食べ尽くされて丸裸です。

餌になる葉っぱもなく、アゲハは立ち寄ることもないままに秋が来てしまった。
残念ですが、もう冬が来てしまうので越冬する蛹の産卵は、来ないと断念する。

そんな秋の日々が続いて行きますが、やはり猛暑の名残で気温が下がりません。
逆に、野ネズミがベランダを跋扈して、鉢の植物を食い散らかすから癪に障る。

そんな時、アゲハの幼虫でもいてくれたら、少しは気が紛れるかもしれないな。
そんなことを思いつつ、関心のなくなったヘンルーをふと見ると、鳥の糞かな。

おやっと思ってよく注意してみれば、それは糞ではなくてアゲハの幼虫でした。
多分、三齢になったぐらいの幼虫で、目の付いた青緑の芋虫になる前の姿だな。

鳥類に捕食されないように擬態をしているといいますが、はっきりしていない。
逆に、幼虫でも体内に毒を持つジャコウアゲハの黒い幼虫にも似ている感じだ。

だとすると、鳥類は黒い幼虫は毒を持つと、判断して食べないのかもしれない。
というのも、卵から成虫になるまでの生存率を表したものに生命表があります。

蝶類では数の少ない統計ですが、アゲハ蝶にもデータがありそれが驚きの結果。
1~3齢までは鳥類に全く捕食されていなくて、なんのための擬態なのだろう。

というわけで、近いうちに脱皮して緑の葉に擬態するような四齢は、まもなく。
最初に発見したのが二匹だけでしたが、その後上さんが残り五匹を新たに発見して今や合計七匹の幼虫が、ヘンルーの葉をむしゃむしゃと食べており、充分に食料がある環境の中で、このまま皆、無事に蛹になってくれよと期待する自分なのでした。



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



2024年11月21日木曜日

日本人は無礼者しかいないと、諸外国の人々から思われてしまうのが、非常に危惧してしまう事態発生 ー 石破首相マナー(政治談議)

           
まあ、おにぎりの食べ方が汚すぎること、カバでももうちょっと綺麗に食うな。
それに、一度噛んだら口を開けて人に見せないのが、マナーの一丁目一番地だ。

あまり、食べ方に文句言うのは好きではないのですが、想像の十倍汚らしいな。
いい年して、箸もお椀の持ち方もダメで、ご飯の食べ方も汚いままとは驚いた。

それで、駄目押しとも言えるのが「迎え舌」と言って、マナーとしては最悪だ。
そもそも、食事のマナーは親が教えると思いますが、教わっていないのだろう。

これで、高校から大学まで慶応という石破さんですが、作法ではすでにKO負け。
大人になるまで迎え舌を直せなかったのは、親のしつけが悪かったのでしょう。

 ・行儀が悪い人だと思われる
 ・下品に見える
 ・育ちが悪いと見られる
 ・ガキっぽく見られる
 ・醜い表情に見える

全部、石破さんに当てはまるのではないか、こんなとっちゃん坊やは御免です。
加えて、他のマナーにしても、日本国トップとして恥さらし状態になりました。

ついこの間、ペルーの首都リマで開催されたAPEC会議の行状が、下人レベル。
会議に出席中、腕組みしたまま発言を聞くのは、反対とか敵対を意味するのだ。

しかも、休憩中なのか、立たないで挨拶するのも横着で駄目で、国内でも同じ。
マレーシアのアンワル首相、カナだのトルドー首相とも立つ気配すら見せない。

                                                                                                    
          
中国の南シナ海領有を阻止すべく、アセアン各国の連携は非常に重要なのです。
そして、G7の参加国でもあるカナダの首相に対するマナーは、非礼そのもの。

記念の集合写真には、遅刻して撮影に参加できず、それはラッキーなことだな。
失礼な首相だから、APEC会議に参加していた証拠を一つでも消せたのは快哉。

まあ、これから諸外国王室主催の晩餐会や、皇室主催の晩餐会に臨席するのだ。
世界に向けてしてはならないテーブルマナーのお見本を披露なさるのでしょう。

というわけで、服の着方もダメダメやし、アカンすぎると思うのが小生の意見。
一方、マスゴミや県議会に嵌められて失職しながら出直し選挙で再選を果たした斎藤兵庫県知事さんですが、かれの深々と頭を下げるマナーといい、釈明もせずに淡々と対応してきた姿を見ていると、どちらが真の政治家なのかと、マナーだけからも判断してしまう自分なのでした。



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