Excel-VBA 関数をセルに入力して結果を値に変換するマクロ

2019/12/09

プログラム

t f B! P L
Excel VBAマクロ。今回は
関数をセルに入力して結果を値に変換するマクロ
を示す。

■Excel-VBA 関数をセルに入力して結果を値に変換するマクロ

Sub sample26()
Dim MR As Long
Dim MC As Long
MR = Cells(Rows.Count, 1).End(xlUp).Row 'ω'最終行,A:A
MC = Cells(1, Columns.Count).End(xlToLeft).Column 'ω'1:1,最終列

        Range(Cells(2, MC + 1), Cells(MR, MC + 1)).Formula = "=MID(E2,2,4)"
        Range(Cells(2, MC + 1), Cells(MR, MC + 1)).Value = Range(Cells(2, MC + 1), Cells(MR, MC + 1)).Value
End Sub
※[2.~3.] 変数宣言。
※[4.~5.] 最終行数、最終列数取得。
※[7.] MID関数を最終列の次に入力。
※[8.] MID関数の結果を値に変換。

※「=MID(E2,2,4)」 MID関数。
指定位置から任意の文字数を抽出する。
他にLEFT関数、RIGHT関数がある。
E2の2文字目から4文字抜き出す。

■マクロ実行対象

「部品データ_191128.xlsx」の「部品表」シート。5列目(E列)。

■マクロ実行結果

実行すると、20列目(T列)、2行目から
「=MID(E2,2,4)」
「=MID(E3,2,4)」
「=MID(E4,2,4)」

最終行まで入力され、
関数⇒結果の値に変換される。

■あとがき

今回はExcel VBAマクロ。
関数をセルに入力して結果を値に変換するマクロ
を示した。

扱うエクセルファイルの
データ量が多く(十万行程度)、
関数が使われていると自動再計算のたびに
時間を数分とられる場合がある。
なので極力関数は値に変換する。

自動再計算を回避するだけなら
「計算方法の設定」を
「自動」から「手動」に変更する方法もある。

VBAマクロでも
「Application.Calculation = xlCalculationManual」と
「Application.Calculation = xlCalculationAutomatic」で
切替可能。
Excel-VBA マクロ処理高速化のため停止可能な項目7選
参考。

LibreOffice Basicでコード先頭に
「Option VBASupport 1」記述して
Option VBASupport 1
関数をセルに入力して結果を値に変換するマクロ
試したが
全てのセルに「=MID(E2,2,4)」が入ってしまい、
意図した結果は得られなかった。
※エクセルではセルごとにE2⇒E3⇒…となる。
以上。

ブログ アーカイブ

ラベル

このブログを検索

スポンサーリンク

自己紹介

機械メーカー総合職正社員10年勤務後退職。 エクセルVBAプログラム歴 5年。 LibreOffice(無料)でVBAマクロ検証。
■Fortniteクエスト攻略動画■
■Twitter■
⇒詳細プロフィールを表示

QooQ