マイクロソフト

Excel

配列を利用してセルを取得し別のシートにセット

前に複数のセルに値をセットするときは配列を使うと処理が速いということを紹介しましたが、今回はその応用です。「あるシートのデータを加工して別のシートにセットする」という場合があります。下で紹介するサンプルは、あるシートのデータを一気に配列に取...
Excel

VBAでScreenUpdatingをFalseにすると処理が速い

ExcelのVBAの処理の高速化の一つにScreenUpdatingをFalseにする方法があります。通常、いずれかのセルの値を変更するとそれを表示するために画面が更新されます。これに時間がかかります。「Application.Screen...
Word

差し込み印刷で郵便番号にハイフンを入れる

元のデータが「1234567」となっている場合、これをWordの差し込み印刷で「123-4567」というようにハイフン「-」を入れて表示する方法です。フィールド名は「郵便番号」とします。Word2007で確認しました。
Excel

矩形範囲を配列として取得

Excelのマクロで「複数のセルに値をセットするときは配列を使うと処理が速い」ということを紹介しました。複数のセル(範囲)に配列を使って値をセットするだけでなく、配列として値を取得することができます。「arrs = Range("a1:b2...
Excel

「.Calculation」と「.EnableCalculation」のどちらが効果的か

Excelのマクロの処理を高速化するために、マクロの実行中のワークシート上の計算を止めるという方法があります。通常はセルの内容が変われば自動的に計算されます。これを一時的に停止しマクロの実行後に元に戻すという方法です。二つ方法があります。
Excel

複数のセルに値をセットするときは配列を使うと処理が速い

Excelでマクロを使って複数のセルに値をセットする場合、通常は次のようにすると思います。次のサンプルはA1セルからJ10セルまでの範囲に行番号と列番号の積をセットします。九九の表のような感じです。
Excel

Excelの列番号を英字に変換するユーザー定義関数

「(1,1)」のセルならば「A1」と表示したいのですが、これを行うには、1ならばA、2ならばB、27ならばAAというように、列を英字に変換する必要があります。ヘルプを調べましたが見付からなかったのでユーザー定義関数を作ってみました。
Access

Accessで「循環参照」が発生したら

Accessのクエリを使うと、通常はフィールド名がそのまま表示されますが、別名を付けることができます。「別名: フィールド名」のようにコロンを使います。しかし、別名を元のテーブルのフィールド名と同じにしようとすると次のようなエラーが出ます。...
Excel

「Excel方眼紙」の発生原因を考える

Wordで作成すべき文書をExcelで作成してしまう人は多いです。Excelは表を使うケースや自動的に計算する必要があるケースに限って使うべきで、その他の文書はWordを使った方がよいのですが、これが理解できない人が多いです。これを極めたの...
Access

SQLでデータの不一致を探す

次のようなテーブル「height」があったとします。名前と身長のデータです。Suzukiが二つ入力されています。データが同じならば問題はないかもしれませんが、身長が異なります。SQLを使って、このようなデータの不一致を探す方法を紹介します。...