2025年1月14日火曜日

達人の「うどん」レシピ

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

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

2024年12月14日土曜日

vbaツールはセキュリティソフトHP Sure Click Secure View環境では様々な意味不明なエラーが出る。

Gogle AIによると、

  • HP Sure Click Secure Viewは、HP Sure Click Secure Browsing拡張機能やHP Sure Click Secure Browserでファイルを開いた際に表示されるメッセージです。ファイルはマイクロVM(仮想マシン)に隔離されて編集可能なモードで起動するため、マルウェアやウィルスなどの脅威から保護されます。
だとすれば、vbaツールはおそらく、マルウェアやウィルスと解釈される。セキュリティソフトHP Sure Click Secure View環境では様々な意味不明なエラーが出る。解決策としては、HP Sure Click Secure Viewによる保護を解除すればよい。その方法はググれば良い。

2024年11月21日木曜日

vba ファイルのフルパスはApplication.GetOpenFilenameでゲットせよ

taka-skull

 vbaでファイルを扱うツールを作成する場合、入力となるファイルをmenuシートの特定セル(例えば、A10セル)にフルパスで書いてもらうといった作りになる。  ところが、フルパスのファイル名を指定することは、長々と文字列を書くことになり、意外と面倒くさい。そこで、A10セルの隣のセルに(ファイル)選択とか(フォルダ)参照とかいったボタンを作成し、サクッとGUI画面で設定できるようにしたい。
それを実現するため、ファイル選択ダイアログ(GUIだ)でファイルを選択し、そのファイルのフルパスを取得し、A10セルに設定するコードを書く。こんな感じで。  このコードを選択ボタン或いは参照ボタンにマクロ登録すれば、もう、完成だ。




Sub GetFileName()
Dim FileName as Variant
   FileName = Application.GetOpenFilename("Microsoft Excelブック,*.xlsx?")
   If FileName = False Then Exit Sub
   Range("A10").Value =  FileName 
End Sub
フォルダ選択ダイアログFileDialogとDir関数、ワイルドカード「*」を使う方法もある。

2024年11月15日金曜日

vbaでシートの特定の列だけコピーするは、不要な行は非表示にしてコピペすると良い。

vbaでシートの特定の列だけコピーするのは、全ての列を一旦、非表示にする。そして、必要な列だけを表示し、コピペする。と良い。とりわけ、ある条件でフィルターした結果だけをコピペする場合に具合がよろしい。

 Columns("A:Z").hidden = True  'A列からZ列を非表示にする
 Columns("A:D").hidden = False  ’A列からD列を表示する
 Range("A:Z").SpecialCells(xlCellTypeVisible).Copy Range("A1")

vbaで列の削除は一発でやれ

複数行の削除は、1行ずつやると、意図した行を消せないので、一発でやること。
 Columns("A:A,C:C,E:E,G:J").deleteで列削除は一発でやること。
 ちまちまと、Columns("A:A").Delete、次にColumns("C:C").Deleteとやると、意図した行が削除できない。

vbaで「インデックスが有効範囲にありません。」というエラーが出た時にはスペルミスを疑え

シート名やブック名に誤りがあると「インデックスが有効範囲にありません。」という謎のエラーが出る。ことがまま、ある。そういうとき、大体、スペルミスをしている。

vbaでシートをcopyすると、新ブックのシートにコピーされる、ActiveSheetはコピーされたシートになる。そして、新ブックをcloseすると、元のシートがアクティブになる。

アクティブシートは、スタックされている。新しいブックがcloseすれば、元のシートがアクティブになる。
 今、どのシートがアクティブなのかを把握していないと、プログラムは暴走し始める。