Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


4086 / 13644 ツリー ←次へ | 前へ→

【58462】区切り位置の設定情報の消去 ON 08/10/27(月) 11:18 質問[未読]
【58464】Re:区切り位置の設定情報の消去 kanabun 08/10/27(月) 11:44 発言[未読]
【58466】Re:区切り位置の設定情報の消去 ON 08/10/27(月) 13:52 お礼[未読]
【58479】Re:区切り位置の設定情報の消去 kanabun 08/10/27(月) 19:13 発言[未読]
【58512】Re:区切り位置の設定情報の消去 ON 08/10/28(火) 17:07 お礼[未読]

【58462】区切り位置の設定情報の消去
質問  ON  - 08/10/27(月) 11:18 -

引用なし
パスワード
   こんにちは
よろしくお願い致します

メニューバー/データ/区切り位置の設定(手動でも、マクロでも)を
一度でも実行してしまうとセル削除してもその情報が残ってしまいます

このため、新規ブックでの処理ならば問題はありませんが
ブックの使い回しをしようとすると
テキストデータを貼り付けた時点で、勝手なセル割付が行われてしまい
その後の処理がまともに出来ません

検索してみましたが
区切り位置の設定情報をクリアーする方法見つけることが出来ませんでした

アドバイスよろしくお願いいたします

【58464】Re:区切り位置の設定情報の消去
発言  kanabun  - 08/10/27(月) 11:44 -

引用なし
パスワード
   ▼ON さん こんにちは

>検索してみましたが
>区切り位置の設定情報をクリアーする方法

区切り位置の設定を、Excelを開いたときのTAB区切りモードに
するしかないかと思います。

ぼくのばあい、
Personal.xlsに↓こんなプロシージャを書いておいて、
メニューのユーザー設定で、データメニューの「区切り位置」の下あたりに
このマクロを実行するメニュを登録してます。
参考まで。

Sub 区切りモードのリセット()
 
 With ActiveCell
  If .Text = "" Then
    MsgBox "文字列の入ったセルをアクティブにして実行"
  Else
    .TextToColumns ActiveCell, _
      DataType:=xlDelimited, _
      TextQualifier:=xlDoubleQuote, _
      Tab:=True, _
      Comma:=False, _
      Space:=False, _
      TrailingMinusNumbers:=True, _
      Other:=False
  End If
 End With

End Sub

【58466】Re:区切り位置の設定情報の消去
お礼  ON  - 08/10/27(月) 13:52 -

引用なし
パスワード
   ▼kanabun さん:
こんにちは
ありがとうございます
希望の操作はかないました

当初、セル選択/削除で
ご提示頂いたコードを動かしたところ

文字列の入ったセルをアクティブにして実行
が出て、??

で、

>区切り位置の設定を、Excelを開いたときのTAB区切りモードに
>するしかないかと思います。

 With ActiveCell
  If .Text = "" Then
    MsgBox "文字列の入ったセルをアクティブにして実行"

ふーん・・・そうなのか〜・・・何でかな・・・


取り込んだテキストの区切り位置の設定は、マクロ記録で

Sub 区切り位置セット()

  ActiveSheet.Columns(1).Select
  Selection.Columns(1).TextToColumns _
  Destination:=Selection.Cells(1, 1), _
  Other:=True, _
  OtherChar:=" "
  
End Sub

としていたので、With ActiveCell が気になって
"文字列の入ったセルをアクティブにして実行"
を、色々試してみたのですが

結局、区切り位置が設定されているシート上であれば
値の入ったセルが1つでも、それが何処でもいいんですね

そして、

これがシートの 区切り位置の初期化 というより
ブックの 区切り位置の初期化 をしているんですね・・・・??

ただ、上記 ?? が、しっくりきません

これが
>このため、新規ブックでの処理ならば問題はありませんが
の原因のような気がしますが
簡単に解説頂けるとうれしいです

よろしくお願い致します

【58479】Re:区切り位置の設定情報の消去
発言  kanabun  - 08/10/27(月) 19:13 -

引用なし
パスワード
   ▼ON さん:
Excelを開いた当初は
Convert Text to Columns Wizard =Step 2 of 3 の状態は
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 ■Tab □Semicolon □Comma  □Space  □Others
____________________________________________________
になっているわけですね。(Tab にだけチェックが入っている)

ONさんがあるBookのあるシートで、
> Sub 区切り位置セット()
>   ActiveSheet.Columns(1).Select
>   Selection.Columns(1).TextToColumns _
>   Destination:=Selection.Cells(1, 1), _
>   Other:=True, _
>   OtherChar:=" "
>   
> End Sub
を実行すると、区切り記号設定が
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 ■Tab □Semicolon □Comma  □Space  ■Others
____________________________________________________
のように変化する訳です。
留意しなければならないのは、
>   Other:=True, _
を指定するだけだと、他のチェックボックスのチェックは
以前の状態が維持されるということです。
これは「タブ区切りスペース混じり」のテキストをCopyして
シートに貼り付けてみれば確認できます。TABがあれば
> Sub 区切り位置セット()
の実行後でも、テキストはTABによっても列に分解されます。
(もちろん スペースによっても)
ですから、たとえば、今度はセルのテキストを「スペース区切り」で
列に分解しようとするときは、
     Tab:=FALSE, _
     Comma:=TRUE, _
     Space:=False, _
     Other:=False
と、CommaをTRUEにするとともに、他のすべてのチェック
ボックスにも Falseを明示的に指定しないと、
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 □Tab □Semicolon □Comma  ■Space  □Others
____________________________________________________
スペース区切りとはなりません。

> これがシートの 区切り位置の初期化 というより
> ブックの 区切り位置の初期化 をしているんですね・・・・??
というか、
設定は開かれている Excelへの情報設定なので、
設定をクリアする(すべてのチェックボックスをOffにする)↓
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 □Tab □Semicolon □Comma  □Space  □Others
____________________________________________________
ことはできないので、
初期状態に戻す↓
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 ■Tab □Semicolon □Comma  □Space  □Others
____________________________________________________
ために、
     Tab:=True, _
     Comma:=False, _
     Space:=False, _
     Other:=False
とTabにチェックをいれ、他はすべて「チェックをはずす」という
処理をしているわけです。

【58512】Re:区切り位置の設定情報の消去
お礼  ON  - 08/10/28(火) 17:07 -

引用なし
パスワード
   遅くなりました
kanabunさん 詳しい解説をありがとうございます

>Excelを開いた当初は


>というか、
>設定は開かれている Excelへの情報設定なので、
>設定をクリアする(すべてのチェックボックスをOffにする)↓

>ことはできないので、
>初期状態に戻す↓

Excelへの情報設定ですか
なるほどです

この辺のイメージがあまり無かったのですが
なんとなく納得です

この辺、類似の処理も多くありそうな気がしますが
今後遭遇した時には、頂いたアドバイスを参考に対処したいと思います

ありがとうございました
今後もよろしくお願い致します

4086 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free