• ベストアンサー

VBAで1e-3を入力する方法

Excel2010でVBAを使用しています。 例えば、A = 1e-3 と入力すると自動的に A = 0.001 に変更されます。 A = 1e-20とかなら変更されないのである程度小さな値は自動的に変更されてしまうようです。 この機能をオフにすることはできないでしょうか? 10^-3みたいにすれば良いのですが1e-3をそのまま残す方法があれば教えてください。 一応、オプションも見てみたのですがそれらしき項目は見当たりませんでした。

質問者が選んだベストアンサー

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4855/10270)
回答No.1

プログラムは中間コードに変換されて保存され、表示するときに復元しているので、そのあたりを制御することはできません。英字の大文字小文字も、どっちかに自動的になっちゃいますよね。それと同じです。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

回答No.3

VBAのフォームならFormat関数でFormat(A,"0e-0") セルなら書式で指数を選択

全文を見る
すると、全ての回答が全文表示されます。
  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.2

あえてやるなら"1e-3"と文字列にしておいて、数値として使うところで変換 ...だけど、無駄な処理になるので、気にしないのがよいかと

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Excel-VBA>コントロールをグレイアウトするには?

    Excel-VBAでユーザーフォームのコントロールをグレイアウト(灰色にして入力不可能にする)するには、プロパティのどの項目を変更すれば良いのでしょうか? 具体的には、2つのオプションボタンの一方が選ばれたとき、その隣にあるテキストボックスをグレイアウトしたいのです。 ちなみに、グレイアウトの方法は、オプションボタンの状態を監視して、値がTrueになったときにテキストボックスのプロパティを変更させればいいのかな?・・・と考えていますが、この方法が間違っているようでしたら、それについてもアドバイスお願いします。 どうぞ宜しくお願いします。

  • VBAで入力規則 エラーでも入れたい

    Excel2003を使っています。 Range("B1").Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="=INDIRECT(A1)" これを使って「=INDIRECT(A1)」を入力規則のリストとして、セルのA1が空欄の状態で入れたいのですが、実行時エラー1004となってしまいます。 セルのA1には複数ある定義された名前のどれか一つが入るようにします。そして、そのどれか一つが入っていれば、エラーは起こることなく入力規則は設定されます。 ただ、A1は後々この資料を使うときに打ち込みたいため、VBAを走らせている段階では空欄のままにしておきたいのです。 これ、VBAを使わず直接入力規則を設定するときも、A1が空欄だと「元の値はエラーと判断されます。続けますか?」というメッセージが出ますよね? たぶん、これが原因だと思いますが、直接入れるときはそのメッセージを「はい」で強行することができます。 これをVBAで入れるときにもできないものかなと思っています。 VBAで強行して設定する方法はないものでしょうか? ちなみに「On Error Resume Next」をつけてみましたが、その場合はエラーは出ないものの入力規則も設定されませんでした・・・。

  • EXCELでの入力値制御

    エクセルで質問させてください。 あるセルに値を入力する際に、特定の値のみしか入力ができないように制限をかけたいと 思っています。 たとえば、「A、B、C、D、E」という値以外入力できないようにするというような感じです。 「A」のように制限をかけたい値を1つだけ入力するような形なら入力規則でリストを作成すれば 可能であることはわかったのですが、今回は、「AC」のように複数の値を入力したいのです。 このような場合の値の制限のかけ方をご存知のかたがいらっしゃいましたら教えていただければありがたいです。(できれば、VBAは使わない方法で行いたいと思っています。) ちなみにExcel2003です。 よろしくお願いいたします。

  • エクセルで入力保護(制限・コントロール)をしたい

    エクセルでおこないたいのですが・・・ 具体例: A1からF1まで入力します。 A1に値が入らないと、B1からF1までは入力できません。(A1の値は決まっていませんが、空白以外の何かです) A1に入力したあと、順繰りに入力していき、 F1に決まった値(例えば「ok」など)が入ったら、A1からE1までは変更できなくなります。 F1を消せば、また、A1からE1に入力ができるようになります。 このような入力をおこないたいのですが、できるでしょうか。 マクロでもVBA使用でもかまいませんが、使ったことがないので その際はコマンド文や使い方も併せて教えていただくとありがたいです。

  • Excelで入力文字を自動変換しないようにしたい

    エクセルで自動変換しないようにしたいです。たとえば、「2011-02-09」と入力すると自動的に「2011/2/9」と変換されますが、この機能を完全にオフにしたいのですが、設定方法をご存知の方いらっしゃいませんか? セルの冒頭に毎回「'」を入力したり、入力後にセルを選択して「セルの書式設定」で変更するのではなくて、最初から変換しないようにしたいのです。 「ファイル」-「オプション」でそれらしきものを探したのですが、見当たりませんでした。 この機能をオフにすることは、不可能なのでしょうか? よろしくお願いします。

  • 開いているファイルをリネームする方法 vba

    エクセルvbaで、開いているファイルをリネーム保存することは可能なのでしょうか? リネームは、名前の書き換えという意味で、名前を付けて保存ではないです。 検索してみましたが、なかなか該当するものが見つけられません。 やりたいことは、フォルダ内にファイルは1つしか存在せず、セルA1に値が入力されると、その値でファイル名が随時変更されるようにしたいのですが、その他、どのようなvbaが可能でしょうか? エクセルvba、初心者です。 ネット検索で、必要なvbaを持ってきて使う程度のことしかできないので、自分で組み立てるレベルではありません。 できれば、キーワードではなく、できるだけ書いてくださると助かります。 バージョンは2003です。 どうぞ、お分かりになる方、教えてください。 よろしくお願いいたします。

  • EXCEL VBAのイベント発生方法について

    EXCEL VBA でセルの値を変更したら、計算をするプログラムを作りたいのですが、入力を入力規則でリストから選択する方法をとると、選択項目を変更してもWorksheet_Changeのイベントが発生しません。発生させる方法は有りますか?

  • 【VBA】条件を満たしたセルを塗り潰し

    VBAで下記のようにしたいのですが、どのようにすれば良いでしょうか?      A 1    100 2    110 3    120 4    130 5    140 6    150 7    160 8    170 9    180 【条件】この場合、A1:A9の範囲内でB1の値を超える値が入力されているセルを黄色で塗りつぶす ※前提として、B1に150と入力されているとします 上記のようなVBAを作成したいと思っています。 この場合、塗りつぶしの対象となるセルはA7,A8,A9となります。 条件付き書式で対応できるのですが、Excel2007で作成したファイルをExcel2003で開くと条件付き書式が反映しませんでしたので、VBAで対応しようと思いました。 宜しくお願いします。

  • VBAから計算式を入力する方法

    EXCEL2007のVBAで開発しています。 VBAから関数をシートに入れる場合に 範囲をループさせて入力したいのですが、方法がわかりません。 < 例 > For i as integer = 1 to 10 Cells(1, i) = "=IF(Cells(2, i)=1,""True"",""False"")" Next i 上記のように入力するとエラーになります。 シート上では次のように入力をしたいのですが、 =IF(A2=1,"Ture","False")・・・=IF(L2=1,"Ture","False") 入力の仕方をご教授ください。 よろしくお願いいたします。

  • Excelで一つのセルに複数の値を入力する方法

    Excelで一つのセルに複数の値を入力する方法はありますか? 現在の状況です↓ Seet1   A     B    C 1 項目1 項目2 項目3 2  Seet2   A    B   C 1 1/1  1/2   1/3 2  Sheet1のA2に1/1と入力するとSheet2のA2に項目1と入力され、 さらにSheet1のB2に1/1と入力すると Sheet2のA2に項目1項目2と二つの値が出るようにしたいのです。 今までは項目が二つだったため Aに1/1なら項目1 Bに1/1なら項目2 AとBに1/1と入力されていたら項目1項目2と出す というように無理やりIfで処理していたのですが、 項目名が増えてきたためすべての組み合わせをIfで処理できなくなってしまいました。 やはり関数では無理でしょうか?VBAは勉強し始めたばかりです。 どうか知恵をお貸しください。