2025年2月18日火曜日

dosバッチのログはcmd >> log.txt 2>&1でexcel vbaツールのログはdebugprintモジュールで取得する。

dosバッチのログはcmd >> log.txt 2>&1でexcel vbaツールのログはdebugprintモジュールで取得する。
ログを取るのは自己防御のためである。正しい処理をしているのか、何かトラブルが発生してから対策するのではなく、日頃から自分が何をしたかトレースできる仕組みを構築しておくことが肝要である。
excel vbaの場合、application.statusbar="文字列"でツール画面の左下隅に進行状況を知らせる文字列を出力する。内部トレースのルーチンを作り、そのトレース情報をツールと同じフォルダのdebugprint.txtに出しつつ、application.statusbar=にも設定し、ツール画面の左下隅に出すのも面白いかもしれない。

2025年2月13日木曜日

昔はdir("*.xls*")でxlsやxlsxやxlsmも検出できたと記憶している。ところが今はdir("*.xlsx*")と書かないとxlsに加えてxlsxを検出できない。本当かな?

昔はdir("*.xls*")でxlsやxlsxやxlsmも検出できたと記憶している。ところが今はdir("*.xlsx*")と書かないとxlsに加えてxlsxを検出できない。本当かな?

2025年1月30日木曜日

vbaでAppActivate [title]とSendKeys {TAB} or {ENTER}等々で基幹システムへのログイン、検索といった様々な画面の操作を簡単に自在に操る。

SendKeysとAppActivateの組み合わせでRPAを実現してみた。ポイントは{TAB}と{ENTER}だ。{TAB}や{矢印キー}でカーソルを移動させ、{ENTER}でボタンを押下すれば良いのだ。そして、表示が出てくるのを待つのはApplication.Waitが簡単だが、WindowAPIで画面のボタンのハンドルIDをゲットし、ボタンの状態(アクティブか否か)を得ることができれば、確実に画面表示を待つことができる。

  • まず、AppActivate [title(画面タイトル)]で操作したい画面を捕まえる。
    AppActivate "ログイン"
  • そして、SendKeys {TAB}を繰り返し、目的の場所へカーソルを動かす。
    SendKeys (TAB 2] ・・・2回タブ
  • さらに、SendKeys nn(数値)で設定したい値にする。
    SendKeys ID001でロウインIDを設定する。
  • ふたたびSendKey {TAB}を繰り返し、実行ボタンに辿り着く。
    SendKeys 1234でパスワードを設定する。
  • そして、SendKeys {ENTER}で実行ボタンをクリックする。
    SendKeys {ENTER}でログインボタンをクリックする。
  • 検索のボタンをクリックした後、検索結果の画面が表示されるのを待つには、Application.Waitを使うのが一番、簡単である。Application.Wait Now() + TimeValue("00:00:03")と書くと、3秒待つことができる。
  • windowsAPIの関数を駆使し、検索のボタンのハンドルIDを探すと、確実にボタンの操作することができる。
  • また、検索結果の表示ボタンのハンドルIDが取得できれば、そのボタンがアクティブか否かを検出することで、検索結果の画面を待つことができる。

    以上のようなことをvbaのモジュールに記述すればよい。時々、Appactvateで操作したい画面が捕まらないとか、不可解な現象が発生することがあるので、過信は禁物だ。たまに動かないことがあるので、確認しながら使うのが宜しいと思う。

2025年1月22日水曜日

vba application.FileDialogでフォルダを設定する

menuシートのB5セルにファイルせんたくのダイアログを使用して、出力用のフォルダを設定する。

Sub SetFolder()
    With Application.FileDialog(msoFileDialogFolderPicker)
        If .Show = True Then
            Worksheets("menu").Range("B5") = .SelectedItems(1)
        End If
    End With
End Sub

2025年1月14日火曜日

達人の「うどん」レシピ

 達人のうどんレシピは、12%の塩水でコネて、ひと晩寝かせる。
 分量をきちんと守る。これが鉄則だ。
 作り方は、以下のとおりだ。
 材料を揃えたら、全部、混ぜる。こねて、ひとつの玉(団子)にまとめる。ビニール袋(ジップロック)に入れて、新聞紙の上に置く。タオルを被せて、100回足で踏め。ビニール袋から取り出して、ひとつの玉にして、袋に戻す。タオルをかけて100回踏む。これをもう8回繰り返せ。つまり、1000回踏む事になる。タオルに巻いてひと晩寝かせよ。翌朝、取り出し、綿棒で伸ばせ。好みの太さで切れ。たっぷりのお湯で茹でよ。10分ぐらいかな。麺つゆを好みの濃さにお湯で薄めて、ネギに生姜、七味を加えて、茹でたうどんを浸して啜れ。旨いぞ、釜揚げうどんだ。

  • 水 86g 塩 10g
  • 強力粉 120g 薄力粉 80g