Excel

Excel

選択範囲を回転するマクロ

Excelには行列を入れ替えて貼り付ける方法がありますが、回転して貼り付ける方法がありません。選択した範囲を回転して貼り付けるマクロを考えました。右に90度回転、左に90度回転、180度回転の3通りを選べます。なお貼り付ける場所は固定で、選...
Excel

複数ファイルシート一括検索(下階層対応版)

以前、「複数ファイルシート一括検索」という記事を書きました。複数のExcelファイルの全てのシートを対象として文字列検索をするマクロです。フォルダ内の全てのファイルを対象としますが下の階層のフォルダには対応していませんでした。今回、下の階層...
Excel

下の階層を含めたファイル一覧を作成するマクロ

Excelでファイル一覧を作成するマクロを作りました。フォルダを指定すると、その中のファイルについて、ファイル名、フォルダ名、フォルダ付ファイル名を一覧にします。下の階層を含めます。すなわち、フォルダ内にフォルダがある場合はその中のファイル...
Excel

自動的に「改行」するマクロ

世の中には器用な人がいて、Excelをワープロ風に使う人がいます。セルA1に文を入力し、ある文字数を超えると、続きをセルA2に入力します。例えば次のような感じです。
Excel

Excelのファイル名に日時を付けて保存するマクロ

Excelで作業しているとき、大きな間違いに気付いて以前の内容に戻したいことがありますが、上書き保存してしまっていて戻せないケースがあります。そこである程度、作業したらファイル名を変えて保存するという方法があります。エクセルで「上書き保存」...
Excel

アクティブシートの数式を削除して値にするマクロ

Excelのファイルを他人に渡すときに数式を見られたくないケースがあります。まず、前に照会したPDFで保存する方法があります。また、数式を値に置き換える方法があります。範囲を選択してコピーし「形式を選択して貼り付け」で「値」を選択すればよい...
Excel

Excelで年齢を求める方法

Excelで年齢や経過年数を求める場面があります。DATEDIFという関数を使えば求められますが、なぜかExcelはこれを標準の関数とはしていないようです。以下、A1セルに生年月日、B1セルに基準日が入力されているとします。このとき、C1セ...
Excel

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

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

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

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

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

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