• ベストアンサー

エクセルのマクロで『区切り位置』設定できない

マクロの素人です。 Win XPでエクセルでセルの中味を区切る設定をしたところ、うまくいきません。 例えば、A列の 経営管理:情報部 をコロンで区切るというマクロを組みます。マクロを実行すると |経営管理|情報部| という結果になります。 しかし、他の値でマクロを実行しても、4文字目で強制的に区切られてしまいます。 セルに何文字入っていようが、「:」でセルを分けたいのですが、マクロの組み方での解決方法を教えてください。

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

  • ベストアンサー
  • neKo_deux
  • ベストアンサー率44% (5541/12319)
回答No.1

手元のExcel2003では特に問題ありません。 記録したままだと、こうなってました。 Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _ TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _ Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _ :=":", FieldInfo:=Array(Array(1, 1), Array(2, 1)), TrailingMinusNumbers:=True -- > 他の値でマクロを実行しても、4文字目で強制的に区切られてしまいます。 Excelのバージョンが違うとか、やり方がマズイのでは?としか…。

googooquestion
質問者

お礼

ご回答いただいた式をそのままコピペして使いました。 ありがとうございました。

googooquestion
質問者

補足

私のマクロでは、以下のようになっています。どこの設定がおかしいのでしょうか? Selection.TextToColumns Destination:=Range("E8"), DataType:=xlFixedWidth, _ FieldInfo:=Array(Array(0, 1), Array(55, 1), Array(104, 1), Array(159, 1), Array(190, 1 _ ), Array(245, 1), Array(296, 1), Array(367, 1), Array(444, 1), Array(505, 1), Array(554, 1) _ , Array(593, 1), Array(640, 1)), TrailingMinusNumbers:=True

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

その他の回答 (2)

  • neKo_deux
  • ベストアンサー率44% (5541/12319)
回答No.3

> どこの設定がおかしいのでしょうか? マクロを記録する時の手順は正しいですか? 範囲選択 [データ]-[区切り位置] 「区切り位置指定ウィザード-1/3」ウィンドウ 「カンマやタブ場どの区切り文字によってフィールドごとに区切られたデータ」を選択し、次へ。 「区切り位置指定ウィザード-2/3」ウィンドウ 区切り文字の「その他」をon、文字に「:」を指定し、完了。 で記録されました。 > FieldInfo:=Array(Array(0, 1), Array(55, 1), Array… の結果を見ると、複数の区切り位置を固定で設定しているように見えます。

googooquestion
質問者

お礼

ありがとうございます。 やはり手順が間違っておりました。 お恥ずかしいばかりです・・・。

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

こんにちは。単に、文字列の場合、以下のようでいいはずです。ただし、上書きモードです。 最初に、マウスで選択します。 Sub Test1()   Selection.Columns(1).TextToColumns _   Destination:=Selection.Cells(1, 1), _   Other:=True, _   OtherChar:=":" End Sub サンプル 経営管理:情報部 総務:人事 第一営業:開発 仕入:購入 でやってみましたが、問題はありませんでした。

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

関連するQ&A

  • セルの値によって、どちらのマクロを実行するか分岐?

    ■もしも A1セルの値が 「課長」「部長」という文字列を含んでいる場合は、    ”マクロA” を実行する。 ■そうではなく、 A1セルに、 「社長」「社員」という文字列があったなrば、 ”マクロBを実行する”  ・・・というマクロを作りたいのですが、教えていただけませんでしょうか。  どうぞ、よろしくお願いいたします。  

  • エクセルのマクロについて

    エクセルのマクロ実行についてですが、 例えば、 E1セルの値が1ならばこうする(マクロ名 E1セル1) E2セルの値が2ならばこうする(マクロ名 E1セル2) E3セルの値が3ならばこうする(マクロ名 E1セル3) というマクロを別々に作りました。 これをボタンで実行する時に、 If Range("E1").Value = 1 Then ElseIf Range("E1").Value = 2 Then 2行目には作ったマクロを全部貼り付けないといけないのでしょうか? それとも簡単にこの場合は、マクロ名E1セル1を実行するという命令することができるのでしょうか? できるのであれば、入力方法を教えてください。 質問が分かりにくいと思いますが、よろしくお願いします。

  • エクセル2003でのセル内文字列操作マクロ

    あるセルにある文字列を置換し、その置換された文字列を別のセルに移すことをしたいと考えています。 <例> 0000.1111.2222.3333 ↓置換 00:00:11:11:22:22:33:33 (文字列3番目ごとににコロン挿入) 上記のように変換できるマクロメソッド、またロジックなどを教えていただけませんか?また可能でしょうか? (上記の例は逆のパターン(下の文字列から上の文字列への置換)でも結構です。) よろしくお願いします。

  • エクセルのマクロの作成について

    エクセルのマクロの作成について教えてください!! 一つのセルの中に3行の文字があるとして・・・・ そのセルの2行目と3行目を隣のセルにうつしたいです。 例えば・・ E列の1行目のセルに あいうえお かきくけこ さしすせそ と文字が入っていて、 それを F列の1行目のセルに かきくけこ さしすせそ のみ移動させたいです。 1行~300行ほどあって、さらにデータは増え続けます、手作業での移行が困難になってきました。 そもそも一つのセルの中身の文字の一部を違うところに移動させるマクロは組めるのでしょうか。 当方初心者です。お手柔らかにお願いします。

  • エクセルのマクロについて教えてください

    こんな感じのマクロを考えています。 今いるセルの行番号の百の位を行番号とし、 A列のその行番号にある文字列を取得したい場合どのように書けばよいのでしょうか? 例) A2には「あさだ」と書かれています。 A3には「まお」と書かれています。 あるセルの行番号が342の時、百の位である3から、A列の3行目、つまりA3にある「まお」という 文字列を取得して表示させる。 TEXT(QUOTIENT (ROW(),100)&"","@")で上記でいうところの文字列3が取れますが、 ここからどうやってA3として、そのセル番号の中身を取得できるのでしょうか?

  • Excel 検索・置換マクロ

    検索する文字列は、AH4のセルにかいている数値とし 置換後の文字列を“無し”にしたいです。 これを実行するマクロを教えてください。 何卒よろしくお願いしますm--m Excel2003

  • Excelマクロ 選択したセルに対応する文字を設定

    A1からA5000までとB1からB5000までにデータが入っているとします。 その、A1からB5000までのデータを配列として収納して、選択したセルでマクロを実行するとA列から検索して対応するB列の値を一つ右のセルに挿入するマクロを作りたいと思います。 このようなマクロを作るには、 1.データを収納するマクロ 2.検索して出力するマクロ を作る必要があると思うのですが、どのような方法で実現するのがよいでしょうか?

  • エクセル マクロ

    エクセル マクロで、シート1のA1セルないの文字列(数式)をクリックボードにコピーするマクロを組みたいのですが、セルのコピーは出来るのですが、文字列のみコピーが出来ません。貼り付けは任意でするので必要ないです。 初心者で何もわかりません。よろしくお願いします。

  • エクセルの【区切りの位置】の活用について

    【結論】列に配置したい。 エクセル 2010使用です。 1セルにカンマで区切った文字列があります。 (例)A1のセル内に【みかん,りんご,いちご,なし】 区切りの位置でカンマ.........で行うと A1みかん B1りんご C1いちご D1なし になります。 行ではなく列にしたいです。 A1みかん B1りんご C1いちご D1なし いま私が行っているのは、行を一度コピーして 貼り付けのオプションで行と列を入れ替えてます。 最初から1セルに1文字列がよいのですが 他人が1セルにカンマで区切ったデータを編集します。 エクセル2010での関数や操作で実施したい。 ただしマクロや、外部からのソフトは使用しないで よろしくお願いします。 ※OKWaveより補足:「ひかりTVのサービスやISPぷらら」についての質問です。

  • EXCELでこのようなマクロを作りたいです

    EXCELでこのようなマクロを作りたいのですが、 是非作成方法をお教えいただきたく思います。 1.B列を、B1から一番下まで検索 2.ある文字列(完全一致)を発見したとき、そのひとつ上のセル  (B25で発見したら、B24)と同じ内容に置き換える。 3.一番下まで繰り返す。終了条件は、  ・一番下まで行って、検索する値が無くなった時  ・「ある文字列」を発見したとき 以上です。 よろしくお願いいたします。

専門家に質問してみよう