• ベストアンサー

エクセルのセルにVBAで(  )付の式

エクセルのVBAで作業していますが、1つの列の全ての行を (  )付けとしたいのですが、式をお教え下さい。 例えばD列に数値AB123と入れたら(AB123)となるようにしたいのです。 現在のVBA式にはD列のカラミはありません。 単純に追加すればいいと思いますので・・・・ よろしくお願い致します。

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

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.3

> 数値AB123と入れたら(AB123)となるようにしたいのです。 AB123は数値ではありません。文字列です。 数値(数)は括弧でくくるとエクセルはマイナスと判断してしまいます。したがって数値の場合はセルの書式を文字列とすることで対処しました。 Sub test01() Dim lr As Long, i As Long lr = Cells(ActiveSheet.Rows.Count, "D").End(xlUp).Row For i = 1 To lr If Cells(i, "D") <> "" Then If IsNumeric(Cells(i, "D").Value) Then Cells(i, "D").NumberFormatLocal = "@" End If Cells(i, "D").Value = "(" & Cells(i, "D").Value & ")" End If Next End Sub

poron1109
質問者

お礼

早速試してみました。 ばっちりです。ありがとうございました。

その他の回答 (2)

回答No.2

こんにちは。 1 D列全部を選択します。 2 書式→セル→表示形式→ユーザー定義→ 3 種類の所で、"("@")" と入力 →OK と、言う事かな?外してたらゴメン! ではでは

poron1109
質問者

補足

回答ありがとうございます。 関数ですとコピーしても関数が付いてくるので VBAでしたいと思った次第です。 値として貼り付けたらいいのでしょうけど、 予め組んでおきたいので・・・・

  • toshi_2000
  • ベストアンサー率30% (306/1002)
回答No.1

cells(gyo,4)="(" & cells(gyo,4) & ")"

poron1109
質問者

補足

回答ありがとうございます。 早速試してみましたが、式のエラーになります。 そのまま貼り付けただけですが、 なにか他にしなけねばならないのでしょうか? すみません。教えてください。

関連するQ&A

  • EXCELで式での空白セルの挿入方法

    A列は空白行で、B列は数値が入っていたり空白だったりする行で構成されています。 またC列からD列までの全ての行には数値が入っています。 この時A列に条件付き数式を入力して、B列が空白でなければB列に空白セルを挿入して現B列からD列を右にシフトさせたいのですが、数式で可能でしょうか? 数式で可能ならばA列に入力する式を、不可能なら参考のためVBAでの記述をお教え頂けると嬉しいです。(VBAはあまり理解しておりませんが。) 例 【処理前】 A列 B列 C列 D列 E列     22   33  44          55  66     77   88  99         100  101 【処理後】 A列 B列 C列 D列 E列 式       22  33  44 式       55  66 式       77  88  99 式      100  101 2万行の処理を1回のみしたいです。 宜しくお願いします。

  • エクセルのセルに記述した式をVBAで読込む方法

    エクセルのセルに  a*x^2+b*x+c という式を埋め込んでおいて  (式はa,b,cの数値は定数、xはマクロ側でいろいろな数値を指定されます。) VBAのマクロに  ε=a*x^2+b*x+c のように式を埋め込む方法はないでしょうか。 例えば  n=....  x=sin(n*3.14/180) ε=a*x^2+b*x+c  Range(”D2”).value=ε   この中段の行にエクセルのセルの式を呼び出したいのです。 この式はセルにはいろいろな2次式、3次式が任意に組み込まれ、VBAを実行するたびに埋め込まれた式に自動的に記述し直すようにしたいのです。 (数式の結果の数値を入れるのではなくて式を入れたいのです) 可能でしょうか。その場合どのようなコードが考えられるでしょうか。 よろしくお願いします。

  • EXCEL VBA行のコピー繰り返し

    EXCEL VBAで行の特定の列の数字を読み取りコピーしてすぐに下の行に挿入して次の行へというようなことがしたいと考えております。 例 商品ID1の数量の列の数値を読み取り4なら同じデータを3行追加する。追加後次の項目へ(商品ID2の行へ) VBAで可能でしょうか?

  • EXCEL VBAで日報作成したい

    お世話になります。 EXCEL VBAの勉強をかねて日報を作成しようと思っています。 添付図にあるような簡単な日報ですが、VBAでやりたいことは2つあります。 1.行追加 各行の隣にある「行追加」ボタンを押したらその行を下に追加したいのです。 2.カレンダー作成 「カレンダー作成」というボタンを押したらA5に入っている月を参照して、添付図のようなA列が月、B列が日、C列が曜日、D列が開始時間、E列が終了時間、F列が作業、G列に行追加ボタンが自動で該当月のカレンダーに自動作成できれば最高です。 上記1.2を実現するためのロジックについてどなたかお知恵をお借りできませんでしょうか? よろしくお願い致します。 EXCEL2013

  • エクセル2003のVBAを教えて

    エクセル2003のVBAを教えてください。 次の対象データで、(1)(2)(3)の作業が出来るエクセルVBAを教えて下さい。 (1)(2)(3)個々のVBAでお願いします。 ●対象データ:種類(A列)、文字(B列)、    データの行数:不特定なので、データのある最終行までとします。 ●教えていただきたい項目  (1):種類だけを(C列)に取り出す。  (2):種類の先頭に空白の行を3行入れて、追加の2行目の種類(A列)に文字(B列)を入れる。  (3):種類が5行以上あるときは、5行ごとに空白行を追加する。 ●対象データ 種類(A列)   文字(B列) AA       あああ BB       いいい BB       いい BB       いいい CC       うう CC       うう DD       ええええ DD       ええええ DD       ええええ DD       ええええ DD       ええええ DD       ええええ DD       ええええ ●(1)のVBAの結果(このようになるVBAを教えてください。) (C列) AA BB CC DD ●(2)、(3)のVBAの結果(このようになるVBAを教えてください。) 種類(A列)    文字(B列) あああ AA        あああ いいい BB        いいい BB        いいい BB        いいい うう CC        うう CC        うう ええええ DD        ええええ DD        ええええ DD        ええええ DD        ええええ DD        ええええ DD        ええええ DD        ええええ

  • エクセル(vba)で教えてください。

    エクセル(vba)で教えてください。 vbaはほぼ初心者ですので、皆様のお知恵を拝借させてください 現在リストを作成しているのですが、最終更新日時を自動で取得するようにしてみたいのですが、うまくいかないです。 リストは列(項目)固定で、最終行に追加していくというものです。 1カテゴリ=1行での入力になります。 例えば、A,C列の項目のみ記入すると、その行のL列に自動で日時が入力される。 また翌日ブックを開いても、その日時は最終入力日のままだが、追加でD列の項目を 入力すると日時も更新される、というものです。 説明が足りないかもしれませんが、どなたか詳しい方よろしくお願いします。

  • Excel 複雑なセル埋めのVBA

    エクセルで入力済みのデータをテーブル形式にするためにVBAを組んでいますが突き当たりました、お知恵を拝借させてください。現在成形出来ているのは以下の状態です。    A列     B列    C列 1行  AA      2     1 2行 3行  BB      3     2 4行 5行 6行 7行 8行 9行  CC      2     3 10行 11行 12行 13行 14行 これを以下のようにB列を埋めたいと考えています。A列を埋めるVBAは当方で分かります。      A列    B列    C列 1行    AA     1     1 2行    AA     2 3行    BB     1     2 4行    BB     2 5行    BB     3 6行    BB     1 7行    BB     2 8行    BB     3 9行    CC     1     3 10行   CC     2 11行   CC     1 12行   CC     2 13行   CC     1 14行   CC     2 B1に2が入っていてC1に1が入っているときはB1から下へ1,2の連番を1回入れます、B3に3と入っていてC3に2と入っているときはB3から下へ1,2,3の連番を2回繰り返します、同じようにB9以降も処理しています。連番のスタートは必ず1で、現在B列に入っている数字が連番の最後に当たる数値でC列が繰り返し回数という事です。上の例ではB列を書き直していますが、新たにD列にB列に入れたい連番の列を作る方法でもいいと思っています。 もし表が崩れていたら済みませんでした。恐れ入りますがポインタでも結構ですのでご教授下さい、よろしくお願いします。

  • excel vbaで複数のcsvファイルの読み込み

    100シート分のcsvファイルのデーターを一つずつ読み込んでexcelにコピーして使用してますが莫大な時間がかかって困ってます。 vbaを使用して作業を簡素化出来る事は出来ないでしょうか? ------------------------------------------ ※ csvの概要 excelで1枚のcsvファイルを開くとA列の11行目から65536行まで数値データがあります。 ※ vbaできたらよいなと思う仕様 そこで、複数のcsvファイルを選択して読み込むとCSV_データと言うSeetのA列の10行目から1枚目のcsvファイル、B列の10行目から2枚目のcsvファイルと言う風に選択した分のcsvを列に続けて数値データを貼り付けしてくれるvbaをご教授していただけると大変助かります。 不躾で申し訳ございませんが宜しくお願い致します。 excel2003 ------------------------------------------

  • Excelでの式を教えてください。

    下記の様な表内でのD列の自動算出式はどんな式になるのですか? A B C D 1 合計 2 20 50 70 1 3 0 0 0 4 40 10 50 2 5 0 0 0 6 0 0 0 7 10 10 20 3 上記の様なエクセルの表でA列+B列の合計をC列に自動算出(この式は判ります)。これに対して6行分(実際は500行程有ります)の合計に対して、”0”以外の行のD列に”1” ”2” ”3”を自動的に記入(付与?)していく式はどんな式ですか?(合計欄は、”0”であったり無かったりアトランダムです)。ご教授宜しくお願い致します。 ー 以上 ー

  • EXCEL VBA 特定セルの保護解除したい

    お世話になります。田中ともうします。 EXCELのあるシートを一度全て保護して、特定セルの解除をVBAで実現したいのです。 現在、上記処理を毎回手動でやっており、手間もそうですが間違いも多くなり困っています。 イメージとしましては[保護]というボタンをクリックしたら上記処理がVBAで実行されるようにしたいのです。どなたかご教授いただけませんでしょうか。 以下処理の順番イメージです。 ■全てのセルをロック ■保護解除したいセル その(1) 行は決まっていますが列(XX)は可変です。 XX7行目に[調整]という文字がありますのでそのXX列の、XX8行目、XX10行目、XX14行目、XX16行目、XX18行目、XX28行目が保護解除したいセルになります。 ■保護解除したいセル その(2) D20を起点にして、F20、H20、J20・・と2列ずつ右に移動して保護解除したいのです。 ある程度右いにいくと"E"という文字にあるので、この"E"にぶつかるまで上記のように2列ずつ解除したいのです。 ■保護解除したいセル その(3) D24を起点にして、F24、H24、J24・・と2列ずつ解除したいのです。 条件はその(2)と同じです。 これを毎回手でやっているため結構大変で困っています。 どなたかお助けいただけませんでしょうか? よろしくお願い致します。 EXCEL2013

専門家に質問してみよう