• 締切済み

excel定数の違いについて。xlAutomaticとxlCalculationAutomaticでは?

excelでシステムにて使っている定数名称について質問致します。 例えば、excelの自動計算の設定変更で、マクロの記録でVBAを作成すると1)の記述が出てきます。 マニュアルからCalculationを引き出して、見てみると2)のような記述になります。 どちらもプロパティ値は-4105を示しているようですが、なぜ2つあるのか分かりません。 どちらを使うのがよりベターなのでしょうか? 1)Application.Calculation = xlAutomatic 2)Application.Calculation = xlCalculationAutomatic VBAを作っているとこのよなケースがちょくちょくと見られます。 私が捜せないだけかも知れませんが、マニュアルのどこでこれらの説明を見つけ出せるのでようか? 合わせて、ご存知の方いらっしゃれば宜しくお願い致します。

みんなの回答

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.1

こんにちは。maruru01です。 オブジェクトブラウザで確認すると、 「xlAutomatic」は「Constants」クラスのメンバで、 「xlCalculationAutomatic」は「XlCalculation」クラスのメンバです。 つまり、「xlAutomatic」は一般的なExcelVBAの定数で、セルの書式の色の「自動」なんかを表します。 一方、「xlCalculationAutomatic」は、[オプション]の[計算方法]を表すためのクラス(XlCalculation)のメンバです。 数値が同じなので、どちらでも間違いではないですが、意味を考えれば、「xlCalculationAutomatic」にしておいた方がいいと思います。 なお、何故マクロ記録をすると「xlAutomatic」になるのかは分かりません。 マクロ記録は、変に回りくどかったりと間違いじゃないけど、ちょっとと思う記述をよくします。 マクロ記録はあくまでヒントとして、ちゃんと自分で書く方がいいのかも知れません。

tosi0000
質問者

お礼

早速のご回答有り難う御座います。

関連するQ&A

  • VBAとマクロの違い

    こんばんは。エクセル初心者です。 VBAとマクロの違いについて教えてください。 VBAというのは、プログラミング言語のことで よろしいのでしょうか? そのVBAで記述されたものをマクロとよぶ といったイメージでよろしいのでしょうか? たとえば、あるエクセルにはいってるマクロを 実行する、ということを作業マニュアルに記述 する場合 「○○マクロを実行する」というのが 正しいのでしょうか?それとも 「VBAを実行する」というのが正しいのでしょうか? まったく見当違いのご質問だったら申し訳ありません。 教えてください。

  • Excel2007のVBAについて

    Excel2007のVBAについて Excel2007以前では「マクロの記録」を実行して罫線や図形の描写を行って、「記録終了」を行うと作業していたコードが記述され、それを加工したりして使っていましたが、Excel2007で同じように行ってもコードが記述されてませんでした。 セルの操作等はコードが記述されていました。 どこか、私の操作方法が間違っているのでしょうか。また2003のようにコードを記述させる方法が別途あるのでしょうか、よろしくお願いします。 関係ないとおもいますが、 「Excelのオプション」で「開発タブをリボンに表示する」はチェック入れてあります。 「マクロの設定」では「すべてのマクロを有効にする」にチェックしています。

  • ExcelのVBA動作中の再計算禁止について

    ワークシート上に多数のチェックボックスを設置し、 一括管理のために簡単なVBAを記述しました。 Sub チェックボックス一括TRUE() With Application .ScreenUpdating = False .Calculation = xlCalculationManual CheckBoxes.Value = True .Calculation = xlCalculationAutomatic End With End Sub これだと瞬間で処理が完了するのですが、当初は .Calculation = xlCalculationManual .Calculation = xlCalculationAutomatic の二行をそれぞれ EnableCalculation = False EnableCalculation = True としていて、これは相当遅くなります(後者が遅い)。 速度の違いから両社は明らかに異なる動作をしていると思いますが、 調べてはみたものの自分にはそれぞれの処理の意味がよく理解できていません。 どなたかご教授いただければ。

  • 【Excel2007】マクロが記録中かどうかを調べたい

    Excel2007を使用しています。 開発タブからマクロの記録ができますが、 このマクロの記録がされているかどうかをマクロで調べられますか? Applicationのプロパティ値などで分かったら と思っているのですが。。。 もし方法がございましたら、教えて頂けませんか? よろしくお願い致します。

  • excel-vba

    エクセルVBAで Case Cells(50,"A") Case Cells(51,"A") Case Cells(52,"A") などを更にsheet1のCells(50,"A")とかするにはどう記述すればいいのでしょうか。 ただしこのマクロ(コード)はsheet2を処理対象としているsheet2に含まれているものとします。 (素人なのですがこういう言い方はおかしいですか。マクロってシートごとにも使うマクロを変えることできるんですよね?  Sheet1用のMACROsheet1、Sheet2用のMACROsheet2で互いのシートの上のデータを処理する。)

  • マクロとVBAの違いは?

    最近officeのVBAを勉強してるのですが「マクロ」と「VBA」って何が違うのでしょうか? アクセスはマクロとVBA(VBE)が別れてるけど、 エクセルは「マクロの記録」でVBAコードが取得できますよね。 マクロとVBAは同じ意味なのか、違う意味なのか教えていただけますか?

  • Excell2007 のVBAでのこと

    罫線を引くとき、マクロの記録をとった時 次のような記述が記録されました。 (VBA・マクロの勉強中です) Range("B6:G21").Select Selection.Borders(xlDiagonalDown).LineStyle = xlNone Selection.Borders(xlDiagonalUp).LineStyle = xlNone With Selection.Borders(xlEdgeLeft) .LineStyle = xlDouble .ColorIndex = xlAutomatic .TintAndShade = 0 .Weight = xlThick End With この中の .TintAndShade = 0 はどのような働きをするのでしょうか? (何を指定する命令なのでしょうか?) ちなみにエクセル2003ではこの記述はなかったように思うのですが。 初心者ですので分かり易くお願いいします。 どうかよろしく・・・

  • エクセルのマクロ 回数分ループさせたい!

    VBA初心者です。よろしくお願いします。 エクセルの〝マクロの記録〟で作成したマクロ(マクロ名:オレンジジュース)を10回ループさせたいとき、どのように記述したらできるでしょうか。

  • VBAでテキストボックスにセルの内容を表示させたい

    EXCEL2016を使っています。 EXCEL中のグラフ内にテクストボックスを挿入し、セル値を連動させて表示したいのですが、VBAでうまくいきません。 マニュアルではできるのですが、なぜかVBAではマクロの記録もできませんでした。 VBAの表記を教えていただければ助かります。

  • VBA 数式の計算が止まらない

    下記マクロはE列に1~10を記入し、G列に数式で2倍して記入するものです。 数式の計算を事前に止めてる筈ですが、ステップモードで実行し確認すると、全部計算されてます。 Application.Calculation = xlCalculationManual これが効いてないないのです。 なぜでしょうか? Sub Macro1() For i = 1 To 10 Cells(i, "E") = i Next i Application.Calculation = xlCalculationManual For i = 1 To 10 Cells(i, "G").Formula = "=E" & i & "*2" Next i Application.Calculation = xlCalculationAutomatic End Sub

専門家に質問してみよう