ぶろぐ

日記です

軽くVBAった


こんな作業ゲー解消言語に時間を費やしている気はしないので、空気とノリで乗り切る!
# つもりがついつい凝ってしまったり、色々調べてしまったりで時間使ってしまったのは内緒

注意点

  • セルの値は、ActiveSheet.Range("A3").valueでとったり変えたりできること
  • 文字列と数値型の結合は&を使うこと
  • 返り値のないFunctionはCallで呼ぶこと
  • for文
    • For i = 1 To 7
      • ' hogehoge
    • Next i
  • if文

とかこの辺知っておけば戦える…!
書式を読み込んで、グレーなら処理をスキップとかやりたいけど調べるのめんどくさくなってやめた…
設計書でグレーアウトされている部分は無視する、などやりたかった…が、肉眼で確認できないレベルで微妙に色が違う場合などに対応できずバグが潜む。。というのはなんとも気持ち悪いので辞めておいた。

組み合わせ技

動くかは知らない

'A1〜A15で椎名林檎がいれば挨拶する

'定数的な。型とか適当。
TargetColumn= "A"
ResultColumn = "B"
Min = 1
Max = 15

For i = Min to Max
  if (ActiveSheet.Range(TargetColumn & i).value = "椎名林檎") then
    ActiveSheet.Range(ResultColumn & i).value = "やっほ★大好きだよ♪"
  end if
Next i

関数でできるけど...

Function呼ぶときCall使わないと戻り値受け取らないといけない…。

んだ…

'エラー
Func1()

'OK
dummy = Func1()

'OK
Call Func1()

Function Func1()
  msgbox "恋しい…"
End Function

型エラー

文字列型と数値型は+で結合できない。代わりに&を使う。

' vbaは空気が読めない子なの…
Num = 99
Str = "Happy"

' error
Happy99 = Str + Num
' success
Happy99 = Str & Num