• ベストアンサー
  • すぐに回答を!

エクセルのマクロ

セルA1に、a2からa90までの任意の文字を入力した後にマクロを実行します。 セルA1にa7と入力されている時はセルB1にa6と表示され、セルA1にa86と入力されている時はセルB1にa85と表示されるようなマクロを教えてもらいたいのですが。 B1は必ずA1の数字の部分が1つ少なくなるということです。      

共感・応援の気持ちを伝えよう!

  • 回答数2
  • 閲覧数110
  • ありがとう数2

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

  • ベストアンサー
  • 回答No.1

Sub ボタン1_Click() Cells(1, 2) = Mid(Cells(1, 1), 1, 1) & Val((Mid(Cells(1, 1), 2, 2)) - 1) End Sub これで良いはずです。これはボタンを押したときの場合ですから、中の部分だけ 利用してみて下さい。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

回答ありがとうございました。

関連するQ&A

  • エクセルのマクロで"~"を用いた数字の連番

    エクセルのマクロで"~"を用いた数字の連番 について、ちょっと困っています。 以下のように、セルに入力があります。 A1:0 A2:1 A3:2 A4:3 A5:4 A6:5 A7:6 A8:7 A9:8 A10:9 A11:10 次に、B1~B11の任意のセルに "無" もしくは "有" の文字を入力し、 B列に"有"の文字が入力されているA列の数字を"~"を用いて連番にしたい。 ただし、「0」は独立した値とし、「B1:有、B2:有」の場合、「0~1」ではなく、 「0,1」とカンマ区切りとする。 (例) A1:0/B1:有 A2:1/B2:有 A3:2/B3:無 A4:3/B4:有 A5:4/B5:有 A6:5/B6:有 A7:6/B7:無 A8:7/B8:無 A9:8/B9:有 A10:9/B10:無 A11:10/B11:無 ⇒ 『 A12 = 0,1,3~5,8 』としたい。 マクロでご教授いただけると幸いです。 よろしくお願いいたします。

  • エクセルセル内の文字の連結マクロ

    例えばエクセルシート内のA列の1~8行目までに文字が入力してあるとします。 そこで、例えばA1のセルからA8のセルを選択したまま(アクティブにしたまま)で、マクロを実行して、A9のセルにA1~A8の文字を連結した文字列を書くということはできますか?

  • エクセルのマクロ

    エクセルのマクロでわからないことがあり質問なんですが A1セルの数値がリアルタイムに更新されていて このA1セルの数値が更新されるたびに B1とB2にA1セルの最新の値を交互にコピーしていくマクロを 作りたいんですがうまくいきません。 例としては A1に1と表示→B1に1と表示 A1に7と表示→B2に7と表示 A1に18と表示→B1に18と表示 これをA1セルが更新され続ける限り繰り返しすマクロです。 どなたか教えていただけるとありがたいです。

その他の回答 (1)

  • 回答No.2
  • imogasi
  • ベストアンサー率27% (4552/16286)

Sub test01() d = Range("a1").CurrentRegion.Rows.Count For i = 1 To d n1 = Mid(Cells(i, 1), 2, Len(Cells(i, 1)) - 1) n = Val(n1) - 1 Cells(i, 2) = "a" & Trim(Str(n)) Next i End Sub

共感・感謝の気持ちを伝えよう!

質問者からのお礼

回答ありがとうございました。

関連するQ&A

  • マクロ 計算式

    エクセルでマクロを使い、計算式をと結果を表示したいのですが、教えてください。 A1に 200   B1に 10  C1でA1*B1の結果を出し、且つ、結果に円という文字をつける場合のマクロの書き方をお願いします この状態では答えは 200×10 で 2000としか出ないのと、他のセルで実行させた場合でも、例えばA6に 200   B6に 10とした場合、 C6で答えが欲しいのです。 説明がへたくそですみません お解りの方、お願いします。

  • エクセルでちょっと変わった合計の求め方

    エクセルで以下のような事は簡単にできるでしょうか。       A   B   C  ・  ・  ・   1   3   0   2   2   1   2   1   3   1   2   1   4    5   3   2   0   6   3   1   0   7   1   2   1   8   9   3   2   2   ・   ・   ・ 12013  1   2   3 12014  2   1   3 12015  2   1   4 12016 12017 合計 合計 合計 12018 合計 合計 合計 12019 合計 合計 合計 12015行より上は入力された数字です。ここで、 Aの12017には、A1+A5+A9+・・・・+A12013、の合計 Bの12017には、B1+B5+B9+・・・・+B12013、の合計 Cの12017には、C1+C5+C9+・・・・+C12013、の合計 Aの12018には、A2+A6+A10+・・・・+A12014、の合計 Bの12018には、B2+B6+B10+・・・・+B12014、の合計      ・      ・ と、いうようにする場合、Aの12017にどのような数式を入れたらよいでしょうか? (=A1+A5+A9+A13+・・・・+A12013、なんて入力してられないので) Aの12017に数式がはいればBの12017以降はそれをコピーすればできると思いますので。 マクロは使った事ががありませんので関数とか利用した数式でできないでしょうか。 ちなみに簡素化のため列3X行3の入力された数字のかたまりで表示しましたが実際はもっと大きな かたまりです。また入力された数字の最後が何万何千何百何十何行になるかは データによって異なっています。

  • エクセルのマクロの事?

    エクセルで A1あ、B1い、C1う A2え、B2お、C2か A3き、B3く、C3け 以下続く このようになっている物を A1あ A2い A3う A4え A5お A6か A7き A8く A9け こんな感じにマクロを使って変更したいのですが、どのようにすればいいでしょうか?

  • エクセルの計算式

      前提:セルA7はセルA1&#65374;A6の合計値が表示される。 今は、セルA1に数字が入力されたら、セルA7に合計値が表示されるように、A7に「=IF(A1="","",IF(A1>=0,(SUM(A1:A6))))」という計算式を入れてありますが、 セルA1&#65374;A6の全てに数字が入力された場合のみ、セルA7に合計値を表示させたい場合、計算式はどのようになりますか?? ※ A1&#65374;A6のどこか1つでも入力されていないセルがある場合はA7には何も表示されないようにしたいです。 よろしくお願いします<(._.*)>  

  • エクセルのマクロ(繰り返しについて)

    複数のセルの統合をしています。 目的:各セル内の文字を一つのセルに統合したいのです。 この作業をかなりたくさんせねばなりません。 現状行っていることは (1)A1&#65374;A10まで、各セル改行ありで統合してます。 式にすると(A1&CHASE(10)&A2......)というような感じです。 この一連の統合作業を100以上行わねばなりません。 しかも、統合せねばならないセル数が上記のように(A1&#65374;A10)10個のセルとは限りません。 A11&#65374;A16のセルの統合もあれば、A16&#65374;A30のセルの統合もあります。 これをどうにか、マクロを使用して行いたいのですが、 どのようにすればセルの統合がスムーズにいきますでしょうか? ちなみに、統合したいセルの和はkkkkkのいう文字が入っている、セルの直前までです。 つまり・・・ A1 A2 A3 A4(kkkkkk)→A3までを統合 ・ ・ ・ A5 A6 A7 A8 A9 A10(kkkkkk)→A9までを統合。 色々と検索してみたのですが、良い方法が見つかりません。 ひたすら、数式を打ち込むしかないのでしょうか? どなたかお知恵をお貸しください(T_T) よろしくお願いいたします。

  • エクセルで回文を作る関数を組みたい

    概要 エクセルで回文(とまと、しんぶんし、たけやぶやけた、など)を作る関数を組みたいです。 詳細 セルA1に任意の文字数の文を入力すると、セルB1にそれを逆からならべた文を自動的に表示するような関数を組みたい 自分で途中まで考えてみましたが、任意の文字数、ってところが難しい所ですね。 また、できれば入力セル、出力セル、ともにひとつのセルで済ませたいです。 1セル1文字ならば簡単ですよね。 1セル1文字に縦書きにするとしたら B列に セルB1=A10 セルB2=A9 セルB3=A8 セルB4=A7 セルB5=A6 セルB6=A5 セルB7=A4 セルB8=A3 セルB9=A2 セルB10=A1 とするだけです。 ネコでもできますわな。(笑) 入力セル1個、出力セル1個にしないとカッコよくないですね。 次に考えたのが、len関数でセルA1の文字数を検知して、それを引数にしてleft,raight,mid関数で文字を取り出そうと思ったのですが、文字数が増えるごとに関数が1個必要になるので、とても任意の文字数に対応できませんでした。 あらかじめ関数として用意されていませんかねえ? 文を逆転させる関数って。 どなたか、エクセルに詳しい方、お願いします。

  • エクセルのマクロ

    仕事の都合で早急に仕上げなければならないことがあり 困っています。 内容としては エクセルのA1セルに0~無限までの数値がランダムに 繰り返し表示されるとした場合で (例えばA1セルに0と表示された後、数秒たつと10000と表示されて、 また数秒たつと3000と表示されて、 また数秒たつと0になったりをA1セルは繰り返します。 A1に表示される数値も更新時間も完全にランダムです。) 1以上の数値がA1セルに表示された場合のみ その数値をB1セルに抜き出し、更新毎にB1セルで合計し続ける。 (例えばA1に10と表示されるとB1に10と表示し その後A1に100と表示されるとB1に110と表示 その後A1に300と表示されるとB1に410と表示) というマクロを作りたいのですが完全に手詰まりになってしまっています・・・ どなたか詳しい方いらっしゃいましたら申し訳ございませんが 知恵を貸していただけないでしょうか? よろしくお願いいたします。

  • エクセル 2010 マクロ ハイフン 並べ替え

    途中にハイフンが入る文字列の並べ替えをマクロを使用して教えてください。 A2からA列に入力されている最下位セルまでを見つけて(今回はA10まで) A2・・・2 A3・・・5-8 A4・・・1 A5・・・3-4 A6・・・1-2 A7・・・10-11 A8・・・12-13 A9・・・10 A10・・9 上記の並びを下記のようにしたいのですが出来ますでしょうか? A2・・・1 A3・・・1-2 A4・・・2 A5・・・3-4 A6・・・5-8 A7・・・9 A8・・・10 A9・・・10-11 A10・・12-13 B列以降にはデータが入っています。 宜しくお願い致します。

  • エクセルシートの票データの置き換えについて、

    エクセルのシートに (A1)から(D50)まで一覧表があり、それぞれ200個のセルに文字が入力されています。 これを別のシートに縦一列に並び替えたいのですが、 A1=(A1) A2=(B1) A3=(C1) A4=(D1) A5=(A2) A6=(B2) A7=(C2) A8=(D2) A9=(A3) A10=(B3)  ・  ・  ・ A199=(C50) A200=(D50) 出来れば簡易言語で、それで無理ならマクロでも結構です。 よろしくお願いします。

  • エクセルのマクロについて質問です。

    エクセルのマクロについて質問です。 マクロを発動した時に、あるセルに入力してある数値を参照し、その行のX列目に数値を張り付けるものを作成しようとしています。 例えば シート「1」の A1に日付を入力 B1にある数字を入力 シート「2」の A列にA1→1~A31→31の日付が入力されている時 マクロ発動時にシート「1」A1の日付と一致する シート「2」のB列にシート「1」のB1の値を貼り付け ↑たとえばシート「1」のA1が1日でB1が500だった場合 シート「2」の1日(A1)と同じ行でB列(B1に500を 貼り付けるものです。 かなり下手な説明だと自覚しておりますが、解読できる方 どうかご教授ねがいます。