Excelのマクロは、同じ作業を繰り返して行うときに便利です。Excelにはマクロを記録する機能があり、一連の作業を簡単に記録できます。しかし、セキュリティ上の問題を引き起こすことから、通常はマクロが有効になっていないので、ブックを開いた時に警告メッセージが表示されます。 ここでは、セキュリティの設定内容の確認方法と有効にして使う手順を説明します。 … [Read more...]
VBAのRangeで簡単に範囲指定をする。RangeとCellsの使い分けとは
VBAのRangeとCellsは基本的には同じ挙動をします。用意されているVBAのメソッドやプロパティもほとんど同じです。しかしRangeとCellsの2つが用意されているのは、Rangeが分かりやすいからです。しかし中級者以上になると不便なところもあり、それはCellsの記事に記載されています。 … [Read more...]
VBAで一行全て指定する、Rowsでデータの最終行を調べる
VBAのCellsはデフォルトで縦横全てのセルを取得しましたが、Rowsは横一行を取得します。Rows単体では使いにくそうですが、データの最終行処理で頻出です。これはもうVBAのパターンなので、どこかに書いて保存しておいた方がいいかも。 … [Read more...]
VBAでFor文と親和性の高いCellsオブジェクトを使い倒す!
VBAでセルを指定する時、Rangeオブジェクトを使うことが多いですが、For文と組み合わせて使いづらいという欠点があります。Rangeオブジェクトは文字列で、しかもアルファベットを含んでいるので結構大変です。 しかしVBAのCellsは行と列を両方とも数字で指定するので、For文との親和性がとても高いのです。Cellsは上位オブジェクトがなにかで挙動が変わりますのでそれについても解説します。 … [Read more...]
VBAでGoToを使いたくない人へのDo〜Loop活用法
まずVBAではDo〜Loopで無限ループが実装できます。それに終了条件を追加するのがWhileキーワードです。 VBAで純粋な無限ループとして実装することはほとんど無いですが、2重のForを抜けたりするときなど、限られた場面では使用機会があります。悪名高いGoTo文を使用せずDo〜Loopをテクニカルに使用するイメージです。 … [Read more...]