• ベストアンサー

マクロのvbaプログラム

vbaで文字列の先頭等に0を持ってくるプログラムを教えてください。 例. 0000003→0000000003 文字が10個並ぶようにしたいのですが、うまくいきません。 すみませんが、よろしくお願い致します。

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

  • ベストアンサー
  • o_chi_chi
  • ベストアンサー率45% (131/287)
回答No.4

ヘルプを見ればわかると思います。 --- Format(expression[, format[, firstdayofweek[, firstweekofyear]]]) expression 必ず指定します。任意の式を指定します。 式:文字列、数値、オブジェクトのいずれかに評価される、キーワード、演算子、変数、定数の組み合わせ。 --- なので文字列でも問題ありません。 たとえばFor文で --- For i = 1 to 10 Cells(i,1).value = Format(Cells(i,1).value,"0000000000") Next

y6411y
質問者

お礼

解決しました。 とても分かりやすかったです。 ありがとうございました。

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

その他の回答 (3)

  • o_chi_chi
  • ベストアンサー率45% (131/287)
回答No.3

No2です。 つづり間違えました。 Fromat → Format

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

下記でどうでしょう --- Dim a As String a = "0000003" a = FROMAT(a,"0000000000")

y6411y
質問者

お礼

解決しました。 ありがとうございます。

y6411y
質問者

補足

聞きたいのですが、 たとえばA列に幾つかあるものを、桁数揃えて置き換えるというのは どうすればいいのでしょうか? また、文字列なのでFormatは使えるのでしょうか?

全文を見る
すると、全ての回答が全文表示されます。
  • kokorone
  • ベストアンサー率38% (417/1093)
回答No.1

いろいろな方法がありますが、 dim inp as string dim wrk as string dim reslt as string inp = "123" wrk = "0000000000" & inp reslt = right(wrk,10) 対象データの左に、桁数分の0を付けて、それを右から桁数分切り取る

y6411y
質問者

お礼

補足までありがとうございます。 やってみます。

y6411y
質問者

補足

すみません。 たとえばA列に幾つかあるものを、桁数揃えて置き換えるというのは どうすればいいのでしょうか?

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

関連するQ&A

  • VBAのプログラムについて

     VBAでプログラムを書いて以下のようなことを実行したいと考えていますが方法がよくわかりません。   ***1002とセルに入力されているセル列に対して、先頭の文字がaaaであったときに、その後ろの1002を計算して数値に変換するという作業です。  仮に、B列でaaa1002とあった場合に、セルの値がaaaであったときのみ、後ろの1002を100×10^2=10000と計算してB列に対応させてC列に出力したいと考えています。        B列     C列 1行目    aaa1002  10000  2行目 aac1001  空白 3行目 aaa4701  4700  :       :      : 具体的なプログラムのコード、もしくはこのような関数を使えばいいなどヒント等でも構いませんので 教えてください。よろしくお願いします。

  • vbaプログラム

    excelの列に文字列があり、その文字列をvbaを使って他のシートに貼り付けます。 空白になるまでの文字列をコピーして貼り付けます。for文を使って、null-1までコピーします。 配列を使って、そのnull-1までの添え字の値を取得したいのですが、どのようなプログラムを作ればいいのでしょうか? sheet1のA5以降をコピーして(空白になるまで),それをsheet2のA5以降にコピーして、その列数を反映させたくて。。。 for文と配列を使いたいのですが、よろしくお願い致します。

  • エクセルでVBAのマクロを組みたい

    VBA初心者です。エクセルで大量の情報があるとき、A列の文字列が”****”であって、さらにB列の文字列が”++++”であるときの、C列の値を検索したい。それを1行目から最下行まで行いたい場合、どのようなプログラムになりますか、教えてください。よろしくお願いします。

  • c言語 プログラム

    文字列ringo[ ]、文字列mikan[ ]が与えられ(ringo[ ]とmikan[ ]は1以上の文字列が必ず入っているもの)、文字列ringo[ ]中に文字列mikan[ ]が含まれるときは最初にあらわれるその文字の先頭の位置(0~)を返し、含まれないときは-1を返す関数suikaのプログラムを教えてください。 また、その関数を用いて、2つの文字列ringo[ ]とmikan[ ](空白は含まない)を入力すると関数suikaの値を返すプログラムを教えてください。 (例1 ringo[ ]:abcdefghijklmn mikan[ ]:abc abcは0 (例2 ringo[ ]:abcdefghijklmn mikan[ ]:efghij efgは4 (例3 ringo[ ]:abcdefghijklmn mikan[ ]:xyz xyzは-1

  • vbaプログラムで分かりません。

    excelのsheet2のA列には1または2または5が入っていて、B列には00542,00984などたくさんの文字列が入っています。 それでA列の数字が2かつB列が2文字目降(054,098)の3文字分が098または099なら、sheet3のA列に0を出力というプログラムを作っています。 どうやったら良いか分かりません。 分かる方、教えてください。 2文字目以降というのが分かりません。

  • VBAのプログラムに関してです

    VBAに関する質問です。 いま、A列に0~4の数字が順番に繰り返し記入されていて(数字の数はランダム)、B列に適当な値が記入されています。A列の中から1を探しだして(1つ上の行の数字が0)、 その行から1つ戻ったB列の値をC列に記入、A列の次の0~4の繰り返しで同じ条件の1を探してその行から2つ戻ったB列の値をD列に記入する。といったことをA列が空白の行になるまで繰り返し行うというプログラムを教えてほしいです。お願いします。 例) A:00011112233400001123334400011111122233400000- B:12345678912345678912345678912345678912345678- となってるA列のそれぞれの0~4の塊の最初の1をさがしてそれに対応するBをそぜぞれ求めていくというものです。 この場合だと実行結果C・D列には C:379 D:688 となってほしいです。

  • WORD・VBA。文字を置換するプログラム

    WORD・VBA。文字を置換するプログラムを教えてください。 次のような働きをもつWORD・VBAのプログラムをご教示ください。 緊急で急いでおります。 文章中の任意の場所を反転させます。 この状態でプログラムを実行したときに、 反転文章内の全ての中カッコ{ }内について その中の文字列を同じバイト数の空白で置換します。 ただし、この置換は反転して目に見えている実際の文字列(原文)は変えず、 仮想空間(?)の中だけで行います。 この状態で、Ctrl+V によって手動でペーストすると、 原文の{ }内が空白で置き換わった文章が現れます。 つまり、これは原文中の{ }内が空白となる穴埋め問題を 作成するプログラムということになります。

  • Excel VBA マクロ 繰り返し処理について

    初めて、ご質問させて頂きます。excel2003で、VBAによる連続繰り返し処理をしたいのですが、プログラムの知識が全くありませんので、どなたかご教授頂けませんでしょうか。 VBAによる連続繰り返し処理の内容は、excelの1つの列に上から順番に、IPアドレスを4つずつ同じ値で、入力したいのです。 例:10.30.118.1、10.30.118.1、10.30.118.1、10.30.118.1、10.30.118.2、10.30.118.2、10.30.118.2、10.30.118.2、10.30.118.3、10.30.118.3、10.30.118.3、10.30.118.3、、、 上記の例の様に、1つの列上で上のセルから順番に、4つずつ同じ値を順番に、4000行程度入力したいのですが、手で入力するのは、大変時間がかかる為、自動で入力させたいと思っています。 恐らくfor文を使うのでしょうが、その構文がわかりません。 初心者で大変申し訳ないのですが、どなたかご教授下さい。

  • エクセルの関数 or VBAで

    A1に入力されている任意の文字列の先頭から3番目の文字をB1にコピーする 関数 or VBAを知りたいのですが。 宜しくお願いします。

  • vba 文字列の並び替え

    こんにちは! VBAにて以下の処理をしたいのですがどうやっても上手くいかず悩んでます。 A列には文字列B列には数字が入っています。 B列を昇順で並び替えし且つA列に指定した文字列がある場合先頭にデータを昇順で持ってくる。 ※B列で並び替えたあとにif構文で切り取り→挿入を試みたのですがどうしても昇順にならず 泣 どうかご教授下さい(ToT) 宜しくお願い致します。 A B EEEE 1 EEEE 2 RRRR 3 RRRR 4 FFFF 5 DDDD 6 上記の状態からRRRRを先頭に持っていき昇順で並び替えする。

このQ&Aのポイント
  • Win11PCにESETをインストールして2年以上経過しましたが、ノートンよりは動作が軽く気に入っています。
  • ESETの国内代理店のキャノンが丸ごと安心パックサポートをしているわけではなく、OEM事業として委託企業がESETやNECのPC等のサポートをしていることもネット情報から判明しました。
  • フィッシングサイトが多数あり、ESETがブロックするようにメールで依頼しても、サポート会社は確かな証拠がないとブロックできないと言います。Windows11にはDefenderがありますが、セキュリティーソフトも絶対ではないという意見もあります。どうすれば良いのでしょうか?
回答を見る