• ベストアンサー

エクセルのマクロ

B1に文字が入力されています。 先頭から一文字ずつ、A列にコピーします。 スペースの場合はスペースをコピーします。 例 B1→ 1Dk4あ $ A1→ 1 A2→ D A3→ k A4→ 4 A5→ あ A6→  A7→ $ 以上の処理を行うマクロを教えて頂きたいのですが。

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

  • ベストアンサー
  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.3

マクロでって事なので、、、 こんな感じでしょうか? Sub Test()  For i = 1 To Len(Range("B1").Text)    Range("A" & i).NumberFormat = "@"    Range("A" & i).Value = Mid(Range("B1").Text, i, 1)  Next i End Sub

sjppp
質問者

お礼

御回答ありがとうございます。 うまくいきました。

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

その他の回答 (2)

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

Sub test02() J = 2 For i = 1 To Len(Cells(1, "A")) Cells(J, "A") = Mid(Cells(1, "A"), i, 1) J = J + 1 Next i End Sub

sjppp
質問者

お礼

御回答ありがとうございます。 コピーする対象がA1にある場合のようですね。

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

A1に =MID($B$1,ROW(),1) を入れて、下に引っ張れば(A2、A3にコピー、貼り付けしていけば)いいと思うけど。 マクロでやる意味はあまりないような。

sjppp
質問者

お礼

御回答ありがとうございます。 >マクロでやる意味はあまりないような。 質問で示していることが行いたいことの全てではなく、実際にはもっと入り組んだことをしたいと思っていますので、マクロ処理が必要になります。

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

関連するQ&A

  • エクセルのマクロ

    以下のマクロを教えて下さい。 よろしくお願いします。 [1] Book1のSheet1のA列のデータを、Book2のSheet1のB列にコピーする(B列の先頭から)。 [2] Book1のSheet2のA列のデータを、Book2のSheet1のB列にコピーする([1]で貼り付けたものの次行から)。 [3] Book1のSheet3のA列のデータを、Book2のSheet1のB列にコピーする([2]で貼り付けたものの次行から)。 *A列はデータがない場合はありません。途中に空行があることもありません。 *[1][2][3]は一括処理で結構です。 *マクロ自体はBook3に作成する予定です。

  • エクセルで変化する行数に対応してコピーするマクロ

    エクセルワークブックAを検索して見つかった範囲をワークブックBのシートとセルを指定して転記するマクロ。 このようなマクロコードを教えてください。 ブックAのシート1に以下のような配置で文字と数値が入っています。 A列        B列      C列      D列      E列 あいう えお            10       aa      かかか     123          20       ss      ききき     456                        くくく      8910                        けけけ     234                        こここ     5678                        さささ     9123 -------------スペース-------------------------------- かきく けこ             10      aa      かかか     123           20      ss      ききき      456           30      dd      くくく      8910                        けけけ      234                        こここ      5678 -------------スペース-------------------------------- さしす せそ             10      aa      かかか      123           20      ss      ききき      456                        くくく       8910                        けけけ       234 -------------スペース-------------------------------- 上記の様にスペースとスペースの間を1グループとしてコピーしたいのですが、行数が変化します。 また列によって入力されてる行数も違います。 ブックBから操作するマクロでブックAのシート1の”あいう”という文字列を含んだセルを検索して、 次のスペースまでの1グループをコピーしてブックBのシート1のA1に貼り付ける。 (あいう えお~9123まで) 続いてブックAのシート1の”かきく”という文字列を含んだセルを検索して、 次のスペースまでの1グループをコピーしてブックBのシート2のA1に貼り付ける。 (かきく けこ~5678まで) ブックAのシート1の”さしす”という文字列を含んだセルを検索して、 次のスペースまでの1グループをコピーしてブックBのシート3のA1に貼り付ける。 (さしす せそ~234まで) *ブックAのファイル名は固定ですが、ブックBは毎回違います。 マクロの実行はブックBから行います。 この様な条件でのマクロを教えてください。 行数変化に対応している部分に但し書きを付けて頂けると応用が利きますので有難いです。

  • エクセルのマクロで特定の文字があるときだけコピーできるようにしたい

    エクセルのマクロで特定の文字があるときだけコピーできるようにしたい エクセルでこういう表があるとします ココカラ 1 * 2 b 15 3 * 4 d 19 5 e 25 6 * 7 g 35 8 * 9 j 46 10 k 54 ココマデ このような表があるとき、マクロを使ってもしB列に「*」以外の文字(この場合アルファベットのb) があるときは左のセル(2)をずっと下のセルにコピー(仮にA50とします)した後、右のセル(15)をB51にコピー、 次は文字が「*」なのでコピーはせずにd列になったら4と19をC50,D51にコピー・・・ という作業をセルに「ココマデ」と書いているところまで繰り返す、というマクロを作りたいのですが、どうすれば いいのでしょうか?

  • エクセルでのマクロを使った特殊な文字分け

    エクセルのマクロを使った処理について、初心者の小生にご教授ください。 今A列に文字列(半角全角混在)が入力されています。 この文字列の左から20文字までを同行のB列のセルに、21文字から40文字までを同行のC列のセルに、残りを同行のD列のセルに分割してコピーするマクロを作りたいと思っています。 しかし、文字数のカウントの仕方が特殊で悩んでいます。 カウントのルールは 1.半角は1文字、全角は2文字としてカウントする。 2.全角の場合はその文字の前と後ろに半角の『"』を入力し、それ自体も1文字としてカウントする。 3.全角が2個以上連続する場合は、その塊の前と後に『"』を入れる。(例:文字列が『あい』だとしたら、『"あ""い"』ではなく『"あい"』なるため、8文字ではなく6文字とカウントする。) というルールです。 文字を分けるときに、分ける境目に文字が来てしまう場合(たとえば全角が20文字目と21文字目となる場合)は、右のセルに入力しなくてはいけません。 また、全角の前後にある『"』は全角とひとくくりとして考えるため、分けることはできません。(例:B列の最後が『あ』となって、C列の最初の文字が、その全角の後ろの『"』となることはできない。) というややこしいルールとなっています。 文字列を左から順に確認していき、パターンで条件分けする方法も考えたのですが、処理が膨大になってしまい、こんがらがってしまいました。 何かすっきりとした解決方法はないものでしょうか。 ややこしい条件で分かりにくくで申し訳ございませんが、お知恵をお借りしたいと思います。 よろしくお願いいたします。

  • エクセルでセルの値を参照してコピー

    エクセルで一枚の表があり、 各行の先頭列はユニークなIDが入力してあります。 例; 100 ◆ ▲ ● : 123 ■ ▽ ◎ : 200 ◇ ▲ ○ というIDがある表が、 A3からD102まであるとします。 A1セルに 123という数値を入力して、 マクロを登録したボタンを押すと、 123が先頭列のデータをコピー (この場合はA25~D25ですね) して、 A2セルに貼り付けるためには、 どのようなマクロを書けばよろしいでしょうか? 説明が足りなければ補足させていただきますので、 どなたかご教示いただければ幸甚です。 よろしくお願いします。

  • エクセルのマクロ

    A列にアルファベット、B列からE列まで数字が入力されている表があります。 A1から順に(A1→A2→A3→・・・)、A列の文字を調べてそれが"A"であった場合のみ、同じ行のB列からE列の最大値をF列に、最小値をG列にコピーする(A列の文字が"A"以外の場合は何もせず下の行を調べる)、ということを繰り返し、A列が空白になった時その作業を中止する、というマクロを作りたいのです。 もちろん、一つの表だけならA列で並べ替えをして関数を使えば簡単にできますが、表がたくさんあるので自動化したいと思います。 マクロに関してはまったくの初心者なので、お知恵をお借りできればうれしく思います。

  • マクロで作ってほしいのです。

    ある行のセルの決まった文字を検索し他の行のセルに別の文字を入力するマクロを作ってほしいのです。下の例で言えばA列にある"大根"(A5,A7)をさがしD5,D7に"特売日"と入力するマクロを作ってほしいのです。よろしくお願いいたします。

  • エクセルのマクロで

    下記のような表において(行数は500ほど) 別シートに 担当者名「 」検索 、 処理年月「  」検索 というアイコンを作成し、 たとえば 処理年月「2007/06」検索 と入力し、アイコンをクリックすると 2007/06のデータ抽出されてが別シート(またはアイコンの下)に作成されるといったしくみをつくりたいと思っています。 A列 番号 (例;A-001,B-002) B列 タイトル C列 担当 D列 処理年月 マクロについては初心者に近いので、上記のようなしくみをやさしく紹介しているサイトがありましたら、お教えください。 よろしくお願いいたします。

  • Excel 2007のマクロ記述について

    Excel 2007で、B4セルからI最終行までの整数のみを小数点以下1桁にする処理をマクロで実行したいのですが、どのように記述したらよいか教えてください。 最終行とはI列にセルの値がある最後の行です。 下記の例のマクロ実行結果は、1→1.0、2→2.0となります。 (例)      列      A  B    C    D    E   F  G   H  I    J      K  行4  A1 0.9   0.9   0.9   0.9  1.2  1.2   2  2   CIRCLE  CIRCLE    5  A2 1.4   1.4   1.6   1.6   1   1  1.5  1.5  CIRCLE  CIRCLE    6  A3 0.71  0.71   0.71  0.71  1   1  1.5  1.5  CIRCLE  CIRCLE マクロ実行結果      列      A  B    C    D    E   F  G   H   I    J      K  行4  A1 0.9   0.9   0.9   0.9  1.2  1.2  2.0  2.0  CIRCLE  CIRCLE    5  A2 1.4   1.4   1.6   1.6  1.0  1.0  1.5  1.5  CIRCLE  CIRCLE    6  A3 0.71  0.71   0.71  0.71  1.0  1.0  1.5  1.5  CIRCLE  CIRCLE

  • エクセルマクロ:空白行を除いてコピー

    マクロで次の作業を処理したいのですが、どのようなコードを書けばよいのでしょうか?教えてください。よろしくお願いします。 ○sheet1 ☆左側 列B~Hをワンセットとしたものが、計51行ある。先頭はタイトル行で9行目である。 D列には固定の文字列が与えられており、E列はブランクで、D・Eともに非表示にしておきたい。 B10~B59には、固定で1~50の数字が順番に与えられている。 C10~C59、G10~G59、H10~H59には数値が、F10~F59には文字列が入力される。 空白の場合もあり、どの行に入力されるかは不明。 ☆右側 列J~Pをワンセットとしたものが、計51行ある。先頭はタイトル行で9行目である。 J10~J59には、固定で51~100の数字が順番に与えられている。 K10~K59、M10~M59、O10~O59、P10~P59には数値が、L10~L59、N10~N59には文字列が入力される。 空白の場合もあり、どの行に入力されるかは不明。 ○sheet2 sheet1のボタンをクリックし、sheet2を表示させ、 sheet1の値を次のようにsheet2に貼付けたい。 sheet2のB8~H107の範囲内で上から、sheet1の左側B10~H59と右側J10~P59の空白を含む行を除いた セット(列B~H、列J~P)のみをコピーし、左側と右側を連続して、値のみ貼付けたい。 ※C列とK列の空白を判定すれば良い ※並べ替えなどのために別シートを置きたくない ※非表示列の扱い方

専門家に質問してみよう