• ベストアンサー

VBAでの「0011」などの頭に0がつく数値の扱い

質問です。 VBA初心者です。 現在、エクセルのVBAで会社で使用するツールを自作しようとしています。 サンプルなどで勉強しつつ、フォームのテキストボックスに入力した数値をシートに転記したのですが、0011など頭に0のつく数値だと、シート上では11となってしまいます。 これを0011と、そのままシートに転記したいのですが、どなたか良い方法をご教授願えませんでしょうか? 宜しくお願いします。

  • kiuiz
  • お礼率77% (7/9)

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

  • ベストアンサー
  • benelli
  • ベストアンサー率51% (78/152)
回答No.1

方法&考え方が二通り思いつきます。 1.セルの書式設定を文字にしてから入力する方法は以下の通りになります。 Range("A1").NumberFormatLocal = "@" 'セルの表示形式を文字列に変更 Range("A1").Value = "0011" '自動変換されずに文字列として認識。 2.セルの内容が文字であることを強制させる場合は文字列の頭に"'"(シングルクォーテーション)を挿入することです。 Range("A1").Value = "'0011" 大概はどちらの方法を用いても構わないのですが、文字としてだけでなくいろいろ応用したいときは1.の方法を、数字として扱うことが絶対にない場合は2.を使用してください。

関連するQ&A

  • Excel VBA テキストボックス内の数値をソートさせるのには?

    VBA初心者です。自分なりに本やネットで調べたのですが、 答えが見つからなかったので質問させていただきます。 フォーム内にある1つのテキストボックスに5桁の数値を入力し、 ボタンを押すことで、入力した数値をソートさせ、シート(A1)に追加入力させたい。 テキストボックス→(数値入力)→ボタンを押す→(ソート)→シート[A1]に入力 テキストボックス→91375→ボタンを押す→13579→シート[A1]=13579 自分の考えでは、入力された5桁の数値を1桁ずつ配列に格納出来れば ソートが可能だと思うのですが、方法が分かりません。 またその場合、ソート後に1桁ずつ別々に格納した数値を ソートさせた5桁の数値にする場合はどのようにしたら良いのでしょうか? また、この考え方以外にも何か方法がありましたらご教授ください

  • Excel ユーザーフォームからの転記

    Excel ユーザーフォームからの転記 はじめまして、ご教授願います。 Exceiのユーザーフォーム内のテキストボックスのデータをシートに転記したいのですが、 教えてください。 テキストボックス内の改行を含んだデータを改行で区切って、別々のセル(縦に順に)に転記 したいのですが、方法がわかりません。 VBAでどのように書けばよろしいのでしょうか。 ご教授よろしくお願いします。

  • エクセルVBA チェックBoxとテキストBox

    VBA勉強中の者です。エクセル2010使用 前回も同じような件で質問したのですが、入力フォームを作成中。 数量表の入力ホームなので、出来るだけキーボードのテンキーでの操作が出来るようにと考えております。 チェックボックスのon/off でテキストボックスの入力の可否を出来るようにしています。これが7組あるとします。(チェックボックス1に対してテキストボックス1に数値が入力出来るように) 質問(1) チェックが入っていれば、呼応したテキストボックスへエンターキーで移動。 チェックを入っていなければ、エンターキーで次のチェックボックスへ移動するようにしたいのです。 質問(2) シートへの転記の際は、7組の間に『、』カンマを入れたいのですが、当然チェックのないものは必要ないので、カンマが要らない事になります。初心者の考えでは単純に条件式をその通り数書くことになるのかと思うとゾッとしますが、少しでも条件式を減らす方法があれば、ご教授願います。 分かり難くて、すみません。

  • VBAユーザーフォームで

     エクセルVBAでユーザーフォームより、テキストボックスで入力させたものをセルに表示させようとしています。  テキストボックスは1と2があり、テキストボックス1で入力した値の最初の5文字+固定値をテキストボックス2に自動で入力(表示)したいのですがなかなかうまくいきません。(自動入力後、手動で一部修正します。)  VBAをはじめたばかりの初心者ですが、どうぞよろしくお願いします。

  • VBA フォームに入力された数値を検索条件としたい

    ど素人ですので、よろしくお願いいたします。 VBAでユーザーフォームのテキストボックスに入力された数値○○~○○という条件でエクセルのデータをフィルターをかけて検索する構文を書きたいのですが、フォームのコードと標準モジュールのコードをどう繋げたらよいのかわかりません。よろしくお願いいたします。 以下が途中まで書いた構文です。 モジュールコード Sub 抽出() Range("a4").AutoFilter field:=1, Criteria1:=">=■1", _ operator:=xlAnd, Criteria2:="<■2" End Sub フォームコード Private Sub 実行_Click() ■1(○○以上の数値が入るテキストボックスの構文) ■2(○○未満の数値が入るテキストボックスの構文) End Sub 全く違っているのかも知れませんが、フォームは無視してモジュールの■に数値を直接入れると正しく検索します。

  • 入力フォームをテーブルの真下に転記

    エクセルのVBAで入力フォームを作成して、入力フォームのテキストをシート2の、テーブルの見出しの次の行から転記される用にしたいのですが、最終行を取得すると見出しから一行飛ばして二行目に転記されてしまいます。 テーブルを作成した時に見出しの下に空欄のデータシートが自動で追加されてしまうからでしょうか? 何か対策はあるでしょうか? コードで提示して頂くと助かります。 入力フォームはシート1で開く 転記 シート2のA列から順に、連番生成(1〜)、テキストボックス1.2.3..... 宜しくお願いします

  • excelVBAのフォームでカーソルの位置を指定するには?

    excelのVBAでフォームを作ってます。 フォームを開いたときにカーソルはタブオーダーの一番最初に来るのはokなんですが、入力内容をシートに転記したあと、入力内容をクリアし、カーソルをタブオーダーの2番目にもってきたいんです。入力内容の転記とクリアはコマンドボタンで実行させていますが、カーソルを希望するテキストボックスに移動させるのはどうすればいいのでしょうか。

  • VBAでvlookupみたいに

    いつもわかりにくい質問ないようですみません。 今回もどういっていいわからないので、やりたいことを順を追って 書きますので、教えてください。 質問1) (1)VBAユーザーフォーム1でテキストボックスに入力 例)テキストボックス1・・・1200   テキストボックス2・・・えんぴつ これをエクセルシート1に反映させる。(下のように)    A    B 1 1200 えんぴつ 2   (2)ユーザーフォーム2でテキストボックスに  (1)のテキストボックス1で入力した数字を入力すると、  (1)のテキストボックス2の文字列を自動で反映してくる。 ・・・のように。 もうひとつ。 質問2) エクセルセル内のデータをVBAのテキストボックスに読み込む際、 元のエクセルセルに書式設定をしている場合に、書式ごと読み込むにはどうしたらいいですか? エクセルセル・・・吉田様(様は書式設定) テキストボックスに読み込んだ場合は、「吉田」のみが読み込まれてしまいます。 よろしくお願いします。  

  • Excelの数値の比較がうまくいきません???

    ExcelのVbaでアンケートの入力フォームを初めて作成しています。 フォームに,テキストボックスを配置して,それを指定したセルに代入するというものです。 このとき,テキストボックスの中身とセルの中身が一致しているかどうかを判断したいと考えて, If Range("A1").Value = Textbox1.Value then ・・・ などとやりました。 そしたら,文字列の時は,うまくいくのですが,数値を入力したら,明らかに同じ数値が入っているのに,上の条件式が"False"になってしまうのです。 IsNumeric関数で調べると,双方とも数値であるとの結果が出ています。どちらも数値であっても3=3が"False"になってしまうのです。 どういうことなんでしょう? どなたかよろしくお願いいたします。

  • エクセル VBA 日付入力?

    エクセル 2000のVBAにて簡単な 日程表を作成しています。 フォームの テキストボックス1に 10/8 を入力したら テキストボックス2には 10/15 ~ テキストボックス15には 1/21 が自動で 入力されるようにするには、どのようにすればよろしいでしょうか?

専門家に質問してみよう