vbaエディタでマウスホイールがきかない
下記引用
ダウンロード先はこちら
1.VB6MouseWheel.EXE パッケージをダウンロード。 2.ダウンロードしたファイルをダブルクリックして解凍先を指定。 (最初にインストール先を指定するも良し、後で解凍したフォルダを適当な場所へ移動するもよし。そのアドレスは次で引用) 3.[スタート]−[ファイル名を指定して実行] regsvr32 <フォルダパス> VB6IDEMouseWheelAddin.dll 4.先ほどのフォルダ内のVBA Mouse Wheel Fixをダブルクリック →レジストリに登録してくれる(気付かんと手動でやっとったがな!)。 内容は以下の通り。 HKEY_CURRENT_USERSoftwareMicrosoftVBAVBE6.0AddinsVB6IDEMouseWheelAddin.Connect キー名 値 FriendlyName MouseWheel Fix ←文字列 CommandLineSafe 00000000 ←dword値 LoadBehavior 00000000 ←dword値 5.Excelを起動 → [ツール]−[マクロ]−[Visual Basic Editor] 6.[アドイン]−[アドイン マネージャ]−利用可能なアドインのうち[MouseWheel Fix]をクリック 7.[ロード/アンロード] チェック ボックスをオンにし、[起動時にロード] チェック ボックスをオンに。 → [OK] マウスホイールをくりくりすると画面がスクロールするようになります!
久々に、vbaでプログラム作った。
すっかり忘れて、レスポンスがかなり悪かった。
とりあえずはまった所。
vbaでゴリゴリプログラム書くときは大抵、Rangeの指定はCells使って
For i = 0 To 10 Range(Cells(1, i), Cells(2, i)).mergecells = true Next
みたいに書く。
ひとつのbookでいろいろやる場合はあまり関係ないが、何個かbook開いてセル参照して
見たいな事やると上のような感じでは駄目。
For i = 0 To 10 Workbook.WorkSheets(1).Range(Cells(1, i), Cells(2, i)).mergecells = true Next
みたいに書く。
でも、上記では思い道理に動かない。
なぜ!?
これで、一時間くらい悩んだ。
Cellsの指定がまずかった。
正しくは
With Workbook.WorkSheets(1) For i = 0 To 10 .Range(.Cells(1, i), .Cells(2, i)).mergecells = true Next End With
こうだ。つまり、さっきはThisWorkbookのCellsを参照していた!?
(CellsプロパティーではなくCells関数を使ってた!?)
やっぱなれない言語は疲れます。