[[20190131212103]] 『2019年(・・・)を(から隣のセルに区切りたいax(ひろ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『2019年(・・・)を(から隣のセルに区切りたいのですが』(ひろ)

いつもお世話になっております
2019年(・・・)を(から隣のセルにデータ区切りで区切りたいのですが

    Selection.TextToColumns Destination:=Range("A146"), 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
という記録を取りましたが 2019年(・・・)というセル全てに適用したいときってRange("A146")はどうすればよろしいでしょうか
わかりにくければすいませんよろしくおねがいします

< 使用 Excel:Excel2010、使用 OS:Windows7 >


https://www.google.com/amp/s/excelwork.info/excel/vbatexttocolumns/amp/

(稲葉) 2019/01/31(木) 21:39


これってセルが1つのときですよね
ではなく 2019年(・・・)を検索して→区切る場合 どう書けばよろしいでしょうか
(ひろ) 2019/01/31(木) 21:55

https://programming-study.com/technology/vba-findnext/

(稲葉) 2019/01/31(木) 22:08


'
Dim firstCell As Range
Dim myRange As Range
Set myRange = Cells.Find(what:="2019年(・・・)")
 If Not myRange Is Nothing Then
Set firstCell = myRange
    Do
        Set myRange = Cells.FindNext(myRange)
   Selection.TextToColumns Destination:=Range(myRange), 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
    Loop While myRange.Address <> firstCell.Address
End If
End Sub
これでよろしいでしょうか
(ひろ) 2019/01/31(木) 22:35

 自分で試してできていればいいのだから聞く必要ないでしょう
(稲葉) 2019/01/31(木) 23:00

エラーが出ましてどうすればよいかわからなくて
(ひろ) 2019/01/31(木) 23:02

>これでよろしいでしょうか

同じ方なのかわからないですけど、
[[20190130202008]] 『特定の単語の横のセルの値を取得して他のセルに入』(ひろ)
[[20190129114306]] 『特定の列の特定の単語を検索して その単語の横の』(ひろ)

↑も含めて【自分で】試せばわかることを聞くのはどうかと思いますよ。

>エラーが出ましてどうすればよいかわからなくて
本当にエラーが出て困っているなら、どの行でどのようなエラーがでているのか説明しないとアドバイスのしようがないですよね。

(今回のケースは、Find(FindNext)メソッドで該当セルを探す部分と、データの区切り機能で、内容を分割出力する部分をごちゃまぜにしたのが良くないように思いますが・・・)

単に、自分で実験データ作ってテストするのがめんどくさいのでタダでデバック作業やってくれる人募集だったら、素直にそう言ってみたらどうでしょう。すっごい暇な人なら相手してくれる・・・かも?

また、(ひろ)という名前で投稿されているいくつかのトピックが放置状態になっているので、もしご本人であれば、あきらめるにしろ、もう少し頑張ってみるにしろ、新しいことを聞く前にそちらから整理したほうが良い様におもいます。

 ※どうやら、少なくともお二人のかたが、(ひろ)という名前をお使いのようですから、別の方であればお聞き流しください。

このほか、↓にも投稿しましたが、Findメソッドを使うなら、名前付き引数の省略はお勧めしないという立場ですが、引数そのものを省略しちゃうのはもっとお勧めしません。
[[20190130202008]] 『特定の単語の横のセルの値を取得して他のセルに入』(ひろ)

 検索に失敗するとき(Findメソッドの引数省略時に起きる失敗)
https://www.moug.net/tech/exvba/0150111.html 

(もこな2) 2019/02/01(金) 00:43


おはようございます。 ^^
Selection.TextToColumns 。。。
何も選択していないのでは?
外していましたらお許しを ( ̄▽ ̄;)
m(_ _)m

(隠居じーさん) 2019/02/01(金) 07:11


たぶんこんな感じになるんだろうなぁとおもいます。

 Findメソッドで対象セルがあるか探す
 もし、対象セルがなければ、終了

 対象セルがみつかったら、覚えておく

 FindNextメソッドで対象セルがあるか探す(Do〜Loopとかでループ)
 もし、みつかったら覚えておいたセル群に追加する

 覚えておいたセル群から1つずつ取り出して処理(For Each 〜Nextとかでループ)
 区切り位置をつかって、セルの内容を右隣(以降)に出力する

私が思っている人だったら、趣味?の競馬をするために、自分で努力せず他人に無償労働させたいだけのように思えるので、参考にはならないかもですが・・
(もこな2) 2019/02/01(金) 09:31


すいませんもこなさんの言う通り前は勉強せず人に作ってもらおうという姿勢でした。でも今回は自作しようと考え質問しています
よろしくおねがいします
(ひろ) 2019/02/01(金) 17:23

あなたは"特定の単語の横"の人ですか?
だったら、そちらの放置スレッドの始末を付けるのが先じゃないですか?
口先だけでなく、行動で示してください。
もし別人なら、申し訳ないがハンドルネームを別のものにしてもらえないですか?違うならそう言ってもらって、今後変更してください。
同じ名前で複数の人が質問すると混乱するので。

あなた、"競馬の人"でもあるのですか?
だったら、mougの質問も閉じたほうがいいですね。
放置するのはよくないです。

(γ) 2019/02/01(金) 18:05


>でも今回は自作しようと考え質問しています

なら、なんで
>これでよろしいでしょうか

ってなるんですか?
デバッグは自分でやりましょうよ

(もこな2) 2019/02/01(金) 18:54


Dim firstCell As Range
Dim myRange As Range
Set myRange = Cells.Find(what:="サラ系")
 If Not myRange Is Nothing Then
Set firstCell = myRange
    Do
        Set myRange = Cells.FindNext(myRange)
   Selection.TextToColumns Destination:=Range("myRange"), 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←実行時エラー 1004 'Range'メソッドは失敗しました:'_Global'オブジェクトとでます

(ひろ) 2019/02/01(金) 19:39


↑はなんだろう。。。ツッコんでほしいってこと?
適当にサイトからコピペしたら思う通りに動くように誰かが直してくれるのを期待しているんでしょうか?

とりあえず2点確認。(返事をお待ちします)
(1)

 Set myRange = Cells.Find(what:="サラ系") 
 ↑これは【何を対象】に【どのようなこと】をしているか理解していますか?

(2)

 If Not myRange Is Nothing Then
 ↑これは【何】を判定しているか理解できてますか

また、 参考にしたサイトでは、Do以降をどのようにしていたのか読み返してみましょう

 ※個人的には↓のサイトの方が説明がわかりやすいと思ったので紹介しておきます。
http://officetanaka.net/excel/vba/tips/tips123.htm

あど、【答えがないので】繰り返しになりますが、もしご自身が投稿したトピックで放置しているものがあれば、そちらもちゃんと対応しましょう。
(別人ならちゃんと言ったほうがよいです。どうしても質問が似ているので、同一人物じゃないかと思っちゃってます)

(もこな2) 2019/02/01(金) 21:34


返信遅くなりました
 とりあえず2点確認。(返事をお待ちします)
(1)

 Set myRange = Cells.Find(what:="サラ系") 
 ↑これは【何を対象】に【どのようなこと】をしているか理解していますか?

サラ系という単語を検索してその結果をmyRangeという変数名に入れていると思います
(2)

 If Not myRange Is Nothing Then
 ↑これは【何】を判定しているか理解できてますか

すいませんわかりません 良ければ教えていただけますか
遅くなりすいません
(ひろ) 2019/02/03(日) 19:48


(1)違います。
標準モジュールに記述しているとして
【何を対象】ほうですが、「Cells → ActiveSheet.Cells」なので、アクティブシートの全セルを対象にしています。
【どのようなことをしているか】のほうは「.Find(what:="サラ系")」ですから、Findメソッドで【セル】を検索しているのは間違いないのですが、引数が省略されまくっているので、説明がむずかしいです。
無理くり説明すると、(値・数式・コメントのいずれか)が「サラ系」と(完全一致・部分一致のいずれか)する【セル】のうち、最初に見つかったものをオブジェクト型(Range型)の変数にセットしています。

なお、引数を省略するとなぜまずいのかは、↓をどうぞ。

 検索に失敗するとき(Findメソッドの引数省略時に起きる失敗)(本トピックで2回目)
https://www.moug.net/tech/exvba/0150111.html 

(2)
さて、上記で「最初に見つかったものをオブジェクト型(Range型)の変数にセットしています」と言いました。
では、見つからなかった場合はどうなるかというと、Nothingがセットされます。
したがって、myRangeという変数にNothingがセットされているか否かをみて、該当するセルがあったのか無いのかを判定しています。

もし、(1)でみつからないのであれば、処理を続ける意味がないですし、逆に見つかっているのであれば、他に該当するものがないか(Do〜Loopなどで)探す必要がありますよね?

 ※個人的には↓のサイトの方が説明がわかりやすいと思ったので紹介しておきます。(本トピックで2回目)
http://officetanaka.net/excel/vba/tips/tips123.htm

・・・というようなことは、ネット検索で調べると出てくるはずですから、マクロの記録で得られたコードや、誰かから提示を受けたコードで、分からない命令が出てきたら、ちゃんと消化されて(意味が分かって)から、ご自身のコードに組み込んだほうがよいと思いますし、そもそも自分でつくるつもりはなくて、完成品のコードだけほしいという場合は、質問サイトで丸投げするんじゃなくて、対価を払って作成してくれる人を探すほうがゴールに近そうです。

(もこな2) 2019/02/03(日) 21:12


自分で作りたいのでよろしくおねがいします

(ひろ) 2019/02/03(日) 22:54


>自分で作りたいのでよろしくおねがいします
えっと。。。何をよろしくなのか、よくわかりませんがタマ私に無いよね?

↓の問題点(留意点)も指摘したし・・

 Set myRange = Cells.Find(what:="サラ系") 

↓がなにやってるのかも説明したし

 If Not myRange Is Nothing Then

↓も書いたし

 他に該当するものがないか(Do〜Loopなどで)探す必要がありますよね?

なにより、↓で疑似コードチックなものを書きましたよね。

 (もこな2) 2019/02/01(金) 09:31 

コードクレクレ君じゃないと主張されるなら、適当にサイトや人の投稿からコピペだけするんじゃなくて、コードの意味を消化(意味を理解)する努力はされたほうがよいです。

そのようにすれば、質問も「〜〜であってますか?」という、試せばわかることを聞くんじゃなくて、「〜〜〜のように理解して〜〜〜したけど〜〜〜という結果になったので、××という結果が得られるように改善するにはどうしたらいいか?」っていう、実際にやってみたらどうだったのか、どのように上手くいかなかったのかを踏まえた質問におのずと変わるようにおもいますよ。

(もこな2) 2019/02/03(日) 23:25


Cells.Find(What:="サラ系", LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByColumns,SearchDirection:=xlNext,Matchcase:=False,MatchByte:=False,SearchFormat:=False)
Findの書き方これでよろしいでしょうか
(ひろ) 2019/02/04(月) 19:39

だから、自分で試したらどうなったんですか?
(ぱっと見 LookAt:=xlWhole, の後ろにアンダースコアがないので実行以前に構文エラーで怒られそうだけど・・)

(もこな2) 2019/02/04(月) 19:46


あと、↓で書いたけど(同じ人ですよね?)ほんとにActiveSheetの全セルから検索したいんですか?
[[20190130202008]] 『特定の単語の横のセルの値を取得して他のセルに入』(ひろ)

↑で出来たって仰ってるコードと質問をみるかぎり「Sheet1」の「A列」以外は検索する必要ないのでは?

さらに言えば、抜き出して書いていて、実コードはちゃんと鳴っているのかもしれないけど、Findメソッドの結果(返り値)はどうするんですか?

(もこな2) 2019/02/04(月) 20:06


結果まで考えてませんでしたうーんどうすればいいですかすいません教えていただけますか
(ひろ) 2019/02/04(月) 20:20

>すいません教えていただけますか

嫌です。自分で過去ログ読んで考えて、調べて、試して、それでもわからないときに聞いてください。

(もこな2) 2019/02/04(月) 20:32


勉強します少し待っていてください
(ひろ) 2019/02/04(月) 22:34

返り値がどう書いたらいいかイマイチわかりません

(ひろ) 2019/02/05(火) 19:51


もこな2さんの
>Findメソッドの結果(返り値)はどうするんですか?

に対する答えを、

>返り値がどう書いたらいいかイマイチわかりません

ではなくて

日本語でどういう処理をしたいのかで、説明してください。
マクロでどう書くかは考えなくて良いです。

(マナ) 2019/02/05(火) 20:22


2019年という単語があるセルを選択

そのセルをデータ区切りで2019年2月3日 東京 4日目 を2019年 2月3日  東京  4日目
と区切る

日にちと場所を変数に取得

わかりにくければすいません
(ひろ) 2019/02/05(火) 20:49


>そのセルをデータ区切りで2019年2月3日 東京 4日目 を2019年 2月3日  東京  4日目
>と区切る

この部分を、もう少し詳細に説明してください。
どういう操作をするのですか。

(マナ) 2019/02/05(火) 20:58


A1 B1 C1 D1
2019年 2月3日 東京 4日目
というふうに区切りたいのです

(ひろ) 2019/02/05(火) 21:06


そのためにはどういう操作をすればできますか。
マクロでどう書くかではないですよ。
手操作でならどうするかを確認しています。

(マナ) 2019/02/05(火) 21:14


質疑応答がコルムさんみたいに、似たような感じです。
() 2019/02/05(火) 21:36

データ区切りを使うのでそれをマクロの記録すればいいのでは
(ひろ) 2019/02/05(火) 22:07

」データ区切り」というのは「区切り位置」のことですね。
では、区切り文字として、何を使えば、期待したとおりに分割できますか。

(マナ) 2019/02/05(火) 22:12


↓も意味を理解して修正してみてくださいね。(修正しないとエラーとなります)

 Dim myRange As Range

 (ひろ) 2019/01/31(木) 22:35
    Selection.TextToColumns Destination:=Range(myRange), DataType:=xlDelimited, _
                                         ^^^^^^^^^^^^^^
 (ひろ) 2019/02/01(金) 19:39
    Selection.TextToColumns Destination:=Range("myRange"), DataType:=xlDelimited, _
                                         ^^^^^^^^^^^^^^^^
(チオチモリン) 2019/02/05(火) 22:19

2019年2月3日 東京 4日目
とつながってるのでコロンかカンマを加えなければいけないのでは
(ひろ) 2019/02/05(火) 22:36

つまり手作業でも分割できていないのですね。
では、最初からです。

実際のA列のデータをいくつか例示お願いします。
2019年…以外のデータもです。

(マナ) 2019/02/05(火) 22:46


わかりましたマクロの記録をする前に気が付きました
他のもチェックしてみます
マナさんありがとうございます
(ひろ) 2019/02/05(火) 22:52

ごめんなさい。話がかみあっていない気がします。
お役に立たているなら、それでも構いませんが、
こちらは、まだ何をしたいのかすら理解できていません。

実際のデータを教えていただけませんか?

(マナ) 2019/02/05(火) 23:03


https://race.netkeiba.com/?pid=payback_list&id=p2019050103
の結果を一レース一行にまとめてリストにできればとおもっています
実際にファイルでないと説明がしにくくすいません・・・

(ひろ) 2019/02/05(火) 23:10


そこまでさかのぼります?
実際のデータというのは、エクセルに取り込んだあとの話です。

どういうデータがあって、その中のどんなデータをどのように分割したいのか
を具体例をあげて説明してください。

(マナ) 2019/02/05(火) 23:27


>2019年2月3日 東京 4日目
とつながってるのでコロンかカンマを加えなければいけないのでは

そこからだったんですね。…
そうなると、セルを探すことより先に、データを分ける方法を理解するのが先決ですね。

私からのボールは、全然キャッチしてもらえないようですし、マナさんの邪魔になっても良くないので、外野に戻ります。

(もこな2) 2019/02/06(水) 19:38


1 2019年2月2日 東京 3日目
これは年 月日 場所 ○日目 に分けたいです
2 サラ系3歳[指]( 馬齢 ) ダート左1300m (
これは サラ系 3歳 [指] ( 馬齢 )  ダート左1300m に分けたいです
わかりにくければすいません 
(ひろ) 2019/02/06(水) 20:22

他にはどんなものがありますか。
2パターンだけですか。
すでに最初の質問とは全然違う話になっています。
もし他にもあるなら、すべて挙げてください。

(マナ) 2019/02/06(水) 21:07


もう1パターンあって
6R 3歳新馬
というのがあって
これは
6R と3歳新馬に分けたいです
ただこれには
9R ゆりかもめ賞(500万下)
みたいに
9Rと ゆりかもめ賞と(500万下)
に分けるのがあって
このパターンがややこしいかもしれません
パターンはこの3つです

(ひろ) 2019/02/06(水) 21:23


A列データで、上記3パターン以外の分割しないものには、どんなものがありますか。

(マナ) 2019/02/06(水) 21:29


分割しないものは
着 順 単勝 複勝 枠連 馬連 と1〜3の数字です

(ひろ) 2019/02/06(水) 21:34


どんなデータかようやく見えてきました。

では、2番めのパターンについて、説明お願いします。
分割のルールを決めるためです。

>サラ系3歳[指]( 馬齢 ) ダート左1300m (

サラ系 の部分は、他にはどんな場合がありますか。
3歳の部分、[指]の部分、( 馬齢 )の部分、 ダート左1300m ( の部分についても同じです。

わたしは、競馬のことは、全くわかりません。
その前提で、説明お願いします。

(マナ) 2019/02/06(水) 21:51


サラ系はサラ系だけで
3歳の部分は 2歳 3歳 4歳以上の3種類
[指]の部分は (混)[指] (混)(特指) (国際)[指] [指]の4種類
( 馬齢 )の部分は( 定量 ) ( 別定 )( ハンデ )に( 馬齢 )の4種類

ダート左1300m ( ここが複雑で
ダート左
ダート右
芝左
芝右
それに距離 1000m〜4500m
です
(ひろ) 2019/02/06(水) 22:13


念の為確認です

>(混)(特指)

ここの括弧は、

(混)[特指]

ということはないですね。

(マナ) 2019/02/06(水) 22:32


はいそのとおりです(混)(特指)です
(ひろ) 2019/02/06(水) 22:55

では、同様に、パターン1、パターン2についても説明してください。

2019年2月2日 東京 3日目
6R 3歳新馬

(マナ) 2019/02/06(水) 22:56


ごめんなさい。ねむくなったので、
次にして欲しいことを書いておきます。
続きは明日以降。

'------
おそらく、こんな手順できます。
まずは手作業で確認してみてください。

 1)A列で置換を以下の条件で9回実行(_は半角スペース)
   検索する文字列  置換後の文字列 
     年        年_
      サラ系      サラ系_
      (混)[指]    _(混)[指]_
      (混)(特指)   _(混)(特指)_
      (国際)[指]   _(国際)[指]_
      [指]      _[指]_
      )_[指]     )[指] 
     ダート      _ダート
      芝        _芝

 2)A列で「区切り位置」実行(区切り文字はスペース)

おそらく、ひろさんにとって、これが一番簡単な方法です。
何をしているか理解できますよね。
上手くいかないなら、何が問題か説明してください。

この手順でできたなら、これをマクロにします。(明日以降です)

(マナ) 2019/02/06(水) 23:43


検索と置き換えですよね↑は
区切り位置もうまくできました

パターン1と2の件ですが
 2019年2月2日 東京 3日目
は
 2019年2月2日は日付なので 1月1日〜12月31日まであります
 東京は 小倉 阪神 京都 中京 中山 東京 新潟 福島 函館 札幌 です
 3日目は 1日目〜15日目まであります

引き続いて
6R 3歳新馬
6Rは1R〜12R まで
3歳新馬は これが複雑で3歳新馬 3歳未勝利 3歳500万下 2歳新馬 2歳未勝利
4歳上500万下 4歳上1000万下 4歳上1600万下
その他にも特別レースといって

 ゆりかもめ賞(500万下)
みたいなひらがな・カタカナ・漢字・英語のついたレース名があります
複雑ですがよろしくおねがいします

6R 3歳新馬

(ひろ) 2019/02/07(木) 18:17


>3歳新馬は これが複雑で3歳新馬 3歳未勝利 3歳500万下 2歳新馬 2歳未勝利
>4歳上500万下 4歳上1000万下 4歳上1600万下
>その他にも特別レースといって
>ゆりかもめ賞(500万下)

この中で、分割が必要なのは、ゆりかもめ賞 と (500万下) だけでしょうか。

(マナ) 2019/02/07(木) 19:23


はいそのとおりです

(ひろ) 2019/02/07(木) 19:33


では、このパターンを分割するには、どうしたらよいかわかりますか?
いまのままだと分割できませんよね。

>ゆりかもめ賞(500万下)

(マナ) 2019/02/07(木) 20:04


ゆりかもめ賞 (500万下)
だと思います したがって(の前に半角スペースでは
(ひろ) 2019/02/07(木) 20:18

>したがって(の前に半角スペースでは

そうです。では、どのように置換するとよいですか。

検索する文字列:
置換後の文字列:

考えてみてください。

(マナ) 2019/02/07(木) 20:25


検索する文字列:(
置換後の文字列: (
ですよね

(ひろ) 2019/02/07(木) 20:34


それだと、このデータの場合に、問題でませんか?

(混)(特指)

(マナ) 2019/02/07(木) 20:43


ですよね
でも必ず賞で終わるわけでもありませんし・・・
特別レース名は他にも C S 杯 記念 特別 で終わるやつもあるし
(ひろ) 2019/02/07(木) 20:49

では、(混)(特指) 以外で問題になるものはありますか

(マナ) 2019/02/07(木) 20:53


他にはありません (混)(特指)だけです 
(ひろ) 2019/02/07(木) 21:00

では、置換をこれだと問題あるか確認してみてください。
   検索する文字列  置換後の文字列 
     年        年_
      サラ系      サラ系_
      (         _(
      [指]       _[指]_
      )_[指]      )[指]
      )_(        )(
     ダート      _ダート
      芝        _芝

(マナ) 2019/02/07(木) 21:11


修正です
   検索する文字列  置換後の文字列 
     年        年_
      サラ系      サラ系_
      (         _(
      [指]       _[指]_
      )_[指]      )[指]
      )_(特指      )(特指
     ダート      _ダート
      芝        _芝

(マナ) 2019/02/07(木) 21:41


確認しました特に問題ありません
(ひろ) 2019/02/07(木) 22:06

これで手作業ではできるようになったということですね。
この作業を「マクロの記録」してください。

(マナ) 2019/02/07(木) 22:30


わかりました 明日になるかもしれませんよろしくおねがいします
(ひろ) 2019/02/07(木) 22:37

コードが取れました
Option Explicit

Sub Macro1()
'
' Macro1 Macro
'

'

    Cells.Replace What:="年", Replacement:="年 ", LookAt:=xlPart, SearchOrder _
        :=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
    Cells.Replace What:="サラ系", Replacement:="サラ系 ", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
    Cells.Replace What:="(", Replacement:=" (", LookAt:=xlPart, SearchOrder _
        :=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
    Cells.Replace What:="[指]", Replacement:=" [指] ", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
    Cells.Replace What:=") [指]", Replacement:=")[指]", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
    Cells.Replace What:=") (特指", Replacement:=")(特指", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
    Cells.Replace What:="ダート", Replacement:=" ダート", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
    Cells.Replace What:="芝", Replacement:=" 芝", LookAt:=xlPart, SearchOrder _
        :=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
    Selection.TextToColumns Destination:=Range("A148"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=True, _
        Semicolon:=False, Comma:=False, Space:=True, Other:=False, FieldInfo _
        :=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), _
        Array(7, 1), Array(8, 1)), TrailingMinusNumbers:=True
End Sub
です

(ひろ) 2019/02/07(木) 22:51


昨日コード送りましたがあれでよろしいでしょうか
(ひろ) 2019/02/08(金) 19:36

A列を選択してから置換です。
上手くできたときと同じ手順で記録してください。

で、次に、記録されたマクロを実行してみて
期待通り分割されることを確認してください。

(マナ) 2019/02/08(金) 20:33


列全体を選択ですね
(ひろ) 2019/02/08(金) 20:36

はい。

1)A列全体を選択
2)置換
3)区切り位置

の順番です。

(マナ) 2019/02/08(金) 20:54


Option Explicit

Sub Macro2()
'
' Macro2 Macro
'

'

    Columns("A:A").Select
    Selection.Replace What:="年", Replacement:="年 ", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
    Selection.Replace What:="サラ系", Replacement:="サラ系 ", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
    Selection.Replace What:="(", Replacement:=" (", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
    Selection.Replace What:="[指]", Replacement:=" [指] ", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
    Selection.Replace What:=") [指]", Replacement:=")[指]", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
    Selection.Replace What:=") (特指", Replacement:=")(特指", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
    Selection.Replace What:="ダート", Replacement:=" ダート", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
    Selection.Replace What:="芝", Replacement:=" 芝", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
    Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=True, _
        Semicolon:=False, Comma:=False, Space:=True, Other:=False, FieldInfo _
        :=Array(1, 1), TrailingMinusNumbers:=True
End Sub
となりましたが 1つ問題が発生しました
それは列全体を選択して区切ると他のデータが消えてしまいました
(ひろ) 2019/02/08(金) 21:33

>他のデータが消えてしまいました

どんなデータが消えたのでしょうか。
具体的に説明してください。

(マナ) 2019/02/08(金) 22:10


枠番 馬番 馬名 騎手名です
ファイルをお見せできれば説明しやすいのですが・・・
(ひろ) 2019/02/08(金) 22:23

>枠番 馬番 馬名 騎手名です

具体的にお願いします。

 	 A
 1	2019年2月3日 東京 4日目
 2	
 3	
 4	
 5	
 6	
 7	
 8

(マナ) 2019/02/08(金) 22:30


返信が遅くなりました
A B C D           E F G
サラ系 3歳 (混)[指] ( 馬齢 ) ダート左1400m ←A列に入っています
着 枠 馬 馬名       性齢 負担 騎手
順   番   番 重量
1 2 3 フローラルパーク 牝3 54 ルメール
2 6 11 ケイアイビリジアン 牡3 56 大野
3 8 16 イッツザファースト 牡3 56 ミナリク
となっていますが
列全体を選択して区切るとB〜Gのデータが消えてしまいます
わかりにくければすいません
(ひろ) 2019/02/10(日) 20:37

>B〜Gのデータが消えてしまいます

こうなるのでしょうか?

 	-A-	-B-	-C-	-D-	-E-	-F-	-G-
 2	着	枠	馬	馬名	性齢	負担	騎手
  
       ↓
 	-A-	-B-	-C-	-D-	-E-	-F-	-G-
 2	着	

(マナ) 2019/02/10(日) 20:57


はいそのとおりです
(ひろ) 2019/02/10(日) 21:09

確認してみました。再現できました。

(マナ) 2019/02/10(日) 21:11


では、こんな手順に変更です
まずは手作業で確認してください

1)A列全体を選択
2)置換
3)B〜G列を選択
4)列挿入
5)A列を選択して、区切り位置
6)B〜G列を選択
7)条件を選択してジャンプ:白セル
8)セルの削除:左方向にシフト

(マナ) 2019/02/10(日) 21:31


5)が結合されたセルの一部を変更することはできませんと出て実行できません
(ひろ) 2019/02/10(日) 22:48

>結合されたセルの一部を変更することはできません

A列に結合セルはありますか
列挿入しなかったときは、そのメッセージはでなかったのですか?

(マナ) 2019/02/10(日) 23:02


A列には結合セルがありました
また挿入時にはでませんでした
(ひろ) 2019/02/10(日) 23:07

>また挿入時にはでませんでした

そうではなくて、金曜日の時点では、
結合セル…のメッセージは出なかったのですか?

(マナ) 2019/02/10(日) 23:13


はいそのとおりです
(ひろ) 2019/02/10(日) 23:15

手順に「結合セル解除」を追加です

1)A列全体を選択
2)結合セルを解除(セルの書式設定)
3)置換
4)B〜G列を選択
5)列挿入
6)A列を選択して、区切り位置
7)B〜G列を選択
8)条件を選択してジャンプ:白セル
9)セルの削除:左方向にシフト

(マナ) 2019/02/10(日) 23:20


>8)条件を選択してジャンプ:白セル

空白セルの間違いです

(マナ) 2019/02/10(日) 23:22


コードが取れました

Sub Macro4()
'
' Macro4 Macro
'

'

    Columns("A:A").Select
    Range("A56").Activate
    Selection.UnMerge
    Columns("A:A").Select
    Range("A56").Activate
    Selection.Replace What:="年", Replacement:="年 ", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
    Selection.Replace What:="サラ系", Replacement:="サラ系 ", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
    Selection.Replace What:="(", Replacement:=" (", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
    Selection.Replace What:="[指]", Replacement:=" [指] ", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
    Selection.Replace What:=") [指]", Replacement:=")[指]", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
    Selection.Replace What:=") (", Replacement:=")(", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
    Columns("A:A").Select
    Range("A57").Activate
    Selection.Replace What:="ダート", Replacement:=" ダート", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
    Selection.Replace What:="芝", Replacement:=" 芝", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
    Columns("B:G").Select
    Range("B56").Activate
    Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
    Columns("A:A").Select
    Range("A56").Activate
    Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=True, _
        Semicolon:=False, Comma:=False, Space:=True, Other:=False, FieldInfo _
        :=Array(1, 1), TrailingMinusNumbers:=True
    Columns("B:G").Select
    Range("B56").Activate
    Selection.SpecialCells(xlCellTypeBlanks).Select
    Selection.Delete Shift:=xlToLeft

問題はありませんでした
(ひろ) 2019/02/11(月) 21:31


では、他のデータでも問題ないか試してみてください。

(マナ) 2019/02/11(月) 22:04


はい 念のために書いておきますが明日より金曜まで出張のためいませんので
(ひろ) 2019/02/11(月) 22:19

特に問題ありません
(ひろ) 2019/02/11(月) 22:44

では、解決ということでよいですか

(マナ) 2019/02/11(月) 22:53


区切る部分は解決して
あとはデータの取得の部分ができれば大丈夫です
(ひろ) 2019/02/11(月) 23:00

それは全く別の問題ですし、わたしにはお役にたてそうにないです。
γさんから指摘がありましたが、mougが放置された状態です。
もし、未解決なのであれば、そちらで継続してはいかがですか。

(マナ) 2019/02/11(月) 23:10


呼ばれましたので。
 
マナさん、お疲れさまでした。
 
ところで、ひろさんが相手にしているサイトですが、
1着〜3着までのデータしかありませんよね。
それで用が足りるのですか?
何を目的にしているのですか?私にはさっぱりわかりませんが。
 
そのあたりを明確にしないと、シーシュポスの神話のように、
無駄に岩を持ち上げる仕事のようになってしまいます。
 
まあ、このあたりで振り返って、
ゆっくり検討してみてはいかがですか?

(γ) 2019/02/11(月) 23:47


すいません
    Columns("A:A").Select
    Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=True, _
        Semicolon:=False, Comma:=False, Space:=True, Other:=False, FieldInfo _
        :=Array(1, 1), TrailingMinusNumbers:=True
のところで
データが選択されてませんとでます
テストは良かったのに
(ひろ) 2019/02/17(日) 22:58

テストで使ったシートで、もう一度試してみてはどうでしょうか。
もし、問題ないなら、問題のでるシートとの違いをさがしてください。
A列にデータが全くないと同じメッセージがでますが…

それと、mougの件はどうするつもりでしょうか。
他の回答者のコメントに対してもそうですが
無視しないようにお願いします。

(マナ) 2019/02/18(月) 19:22


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.