2022年9月21日水曜日

EXCEL vbaでラジオボタン(オプションボタン)を操る。

EXCEL vbaでラジオボタン(オプションボタン)を操る。 menuシートのActiveXで作成した ◉ OptionButton1 ボタンの状態を判定するコードは、こんな感じだ。

  If Worksheets("menu").OptionButton1.Value = False then exit sub
menuシートのフォーム・コントロール(FormControl)で作成した ◉ OptionButton1 ボタンの状態を判定するコードは、以下の通りだ。
  If Worksheets("menu").OptionButtons("Option Button 1").Value = 1 then exit sub
ActiveXの場合、ラジオボタンのオン・オフは、trueかfalseで判定する。
一方、フォーム・コントロールの場合、オプションボタン(ラジオボタン)のオンは、値が1かで判定する。オフは、なんと、値が-4142かで判定する。面白すぎるので、注意が必要だ。似ているようで違うのだ。罠にハマらないようにしたい。以上のことは、ぐぐった末にコードを動かして、わかったのだけれど、マイクロソフトのどこかのドキュメントにはあるんだろうね。どこかは知らんけど。

2022年9月14日水曜日

vbaのdirが動かないと思ったら¥が漏れていたことに気がつくまでにかなり時間がかかった話。myPathのあとには必ず¥がいるんだな。

vbaで以下のコードを書いた。

Dir myPath As String
Dim fileName As String
myPath = thisworkbook.path
fileName = "ABC.xlsx"
if dir(MyPath & fileName) <> "" then kill Mypath & fileName
dir(myPath & fileName)の結果がいつも””となり、dirがバグってると思った。 しかし、原因は、myPathとfileNmeの間にディレクトリの切れ目の¥がなかったため、正しくファイルを見つけられないためだった。 dir(mypath & "¥" & fileName)であれば、OKだった。myPathのあとには必ず¥がいるんだな。エンサインだよ。あるいは、バックスラッシュだよ。必要だよ。 vbaを書くと時間が潰れる。

2022年9月6日火曜日

accessが2GBを超えた時のメッセージは、「データベースを開くことができません。アプリケーションで認識できないデータベースであるか、またはファイルが破損しています。」だったので、すぐに原因がわからなかった。

accessが2GBを超えた時のメッセージは、「データベースを開くことができません。アプリケーションで認識できないデータベースであるか、またはファイルが破損しています。」だったので、すぐに原因がわからなかった。