• ベストアンサー

エクセルVBAの”TextToColumns”について

セルA1に〔あ・い・う・え・お〕と点で区切って入力してあるものを セルA1に〔あ〕 セルA2に〔い〕 セルA3に〔う〕 セルA4に〔え〕 セルA5に〔お〕 とういうように振り分ける処理をマクロで書くとどのようになるのでしょうか? TextToColumnsというのを使うらしいのですが、それ以上が分かりません。 詳しい方がいればぜひ教えてください。

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

  • ベストアンサー
  • NOBNNN
  • ベストアンサー率50% (93/186)
回答No.1

「あ・い・う・え・お」の区切り文字が "・" で固定しているなら 以下のソースをマクロのVBAに貼り付けて実行してください。 _____________________________________________________________ Sub 区切り文字挿入マクロ() Dim strMoji As Variant Dim aryMoji As Variant Dim I As Integer With Worksheets(1) strMoji = .Range("A1") End With aryMoji = Split(strMoji, "・") For I = 0 To UBound(aryMoji) With Worksheets(1) Cells(I + 2, 1).Value = aryMoji(I) End With Next End Sub ___________________________________________________________ 要点は Split関数を用いて配列に代入しています。 このマクロを実行すると ご希望通りだと思います。 以上

NoNoYeah
質問者

お礼

すばらしいご回答ありがとうございます! SplitとUBoundは恥ずかしい話ながら初めて見たのですが 大変勉強になりました! 

関連するQ&A

  • エクセルVBAについて

    以下の処理をマクロで実行しようと思っていますが、わからない部分があるので教えてください。 (例):  A B C D E F G 1 1 2  3  4 5  6  7 2 10 30 50 70 90 130 150 3 4 (1)1行目のどこかの連続したセル(例えばセルA1から セルD1)をドラッグする。 (2)マクロを実行する。 (3)セルA4に、「D2-A2」を計算した値が自動的に入力 される。この例では「70-10=60」  これは、(1)で例えばセルB1からF1をドラッグした場 合には、「F2-B2」を計算した値を入力したいので す。   要は、連続したセルを選択してその始点と終点のセルの行と列を取得できればこの処理はできると思うのですが、方法が分かりませんので教えてください。 よろしくお願いします。

  • エクセルVBAについて

    VB初学者です。 この度上司命令にて多少かじり始めました。(今まで完璧な文系人間で生きてきました) 2点伺わせていただきます。 (1) Sub aaa() Range("A1:F10") .select With Selection . . . . End With End Sub この際("A1:F10") に限定せず、このマクロをどのセルにも適応するようにするにはどのようにしたらよろしいのでしょうか。なお、インプットボックスは使わずに、任意のセル(或いはセル範囲)に適応させることは可能なのでしょうか。 (2) A列に文字が入力されているセルと空白セルが混在しているとします。 A列を参照して空白の場合、同行のB列に何らかの記号を出力する処理場合のコード (A列が空白でない場合B列には何も出力しない) どなた様かご教示いただけますと大変助かります。 よろしくお願いいたします。

  • エクセルのVBAで教えてください

    エクセルのVBAで教えてください、セルA1の値をマクロボタンを押すたびに、セルC1から順番にC2・C3・C4・・・・と下に自動的に入力するVBAを教えてください。

  • エクセルVBA初心者です。マクロを組んでください。

    エクセルVBA初心者です。組んで欲しいマクロがあります。 Sheet 1に13桁を入力するセル sheet 2に検索したいデータ 手順としては、 Sheet 1のセルにデータを入力 →13桁以上でマクロが開始(されるように設定します) →Sheet 1のセルと同じ数列をSheet 2の列Aから検索 →該当のセルを含む行をSheet 3にコピー →Sheet 1の入力セルの少し下にもコピー (確認用) というのを一回一回ずつやりたいです。 できれば作業中マウスやキーボードを触りたくないので、そのために、マクロの終わわりには入力セル内の消去、マクロの始まりには確認用でコピーした行の削除もつけて下さい。 検索するSheet 2には同じデータが含まれているので、出来ればひとつずつSheet 3にコピーしたいので組み込んで頂けると幸いです。 よろしくお願いいたします。

  • エクセルVBAでワークシート関数のようにしたい

     例えば、セルA1に日付を入力して、セルB1に関数WEEKDAYが入力されていると、すぐセルA1の値を返してくれますが、これと同じことをVBAで再現したいのですが、可能でしょうか?  マクロやVBAでWEEKDAYを記述しても、「ツール」→「マクロ」→「マクロ」か「VBA」でやらないとA1の値をB1に返せないので、A1に日付を入力した瞬間、B1に値を返したいのですが、よろしくお願いします。

  • Excel VBA の作り方について【初心者】

    Excel VBA の作り方について質問させてください。 A1セルに「営業部【山本】」と入力されています。 B1セルに「01:35:24」(タイム)と入力されています。 (1)C1セルに「山本」を抜き出して表示 (2)D1セルに「95」(分数)で表示 (3)A2以降で同じ作業の繰り返し(最終入力列まで) というVBAを作成したいです。 マクロの場合だと、 (1)の部分は、=MID(LEFT(A1,FIND("】",A1)-1),FIND("【",A1)+1,50) (2)の部分は、=TEXT(A1,"[m]")*1 で入力ができますが、VBAの場合は違うため、困っております。 分かる方がおられましたら、よろしくお願いします。

  • Excel VBAについて教えて下さい。

    VBAについて2点ほど質問があります。 (1)複数セル(例:A2:A40)に入力されている文字列を一括で数値に変換するVBAはありますか? (2)複数セル(例:A2:A40)に日付と時間が入力されていて(例:2019/09/12 16:00)、それを一括で日付と時間それぞれ別々のセルへ表示させるVBAはありますか? 現状、1つのセルしか変換できず複数一度には難しいのでしょうか? お分かりの方いましたら、是非ご教示お願い致します。

  • VBAでシェープ

    例えばA1セルに”えくせる”と入力されていたとします。 ここでマクロを実行すると、A1セルにぴったり合うぐらいの大きさでテキストボックスが作成され、A1セルの”えくせる”という文字がテキストボックスに入力されるというマクロのコードが知りたいのですが、何回思考してもうまくいきません。とある方のホームページでダウンロードしたワークシートに、同じようなマクロがあったので技術的には可能と思うのですが。 ちょっと難しいと思うのですが、どなたかVBAのプロの方がおられたら教えて頂きたいです。

  • エクセルのVBA 条件分岐について

    エクセルのVBAで、条件分岐プログラムを考えております。 セルA1に入力された数値が、 2.0以下は"B1セルの値をC1セルへコピー 数値が 5.0以上の場合は"B2セルの値をC1セルへコピー それ以外の場合は”対象外”と表示させたいのですが ご教授お願いします。 又、条件分岐後の部分『C1セルへコピー』の部分を"マクロ1を実行" "マクロ2を実行"というように、変える様な事も出来ますでしょうか? 以上よろしくお願いします。

  • vbaについて

    trend関数をマクロでセルに入力したいと考えています。 関数を入力するセルはa1 参照範囲は(a5から入力のある最終行,c5から入力のある最終行,b2) です。 詳しい方よろしくお願いいたします。

専門家に質問してみよう