Excel VBA質問箱 IV

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

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


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

【11489】ある列の全てのデータの前後に括弧を付けたい kenji 04/3/9(火) 21:26 質問
【11492】Re:ある列の全てのデータの前後に括弧を付... ichinose 04/3/10(水) 8:04 回答
【11517】Re:ある列の全てのデータの前後に括弧を付... kenji 04/3/10(水) 19:43 発言
【11520】Re:ある列の全てのデータの前後に括弧を付... ichinose 04/3/10(水) 20:29 回答
【11522】Re:ある列の全てのデータの前後に括弧を付... kenji 04/3/10(水) 21:55 お礼
【11498】Re:ある列の全てのデータの前後に括弧を付... ごんぼほり 04/3/10(水) 10:04 回答
【11518】Re:ある列の全てのデータの前後に括弧を付... kenji 04/3/10(水) 19:44 発言

【11489】ある列の全てのデータの前後に括弧を付け...
質問  kenji  - 04/3/9(火) 21:26 -

引用なし
パスワード
   宜しくお願いします。
書籍データベースの整形をしていますが、ある列にある全てのデータ(この場合は著者名)の前後を【】でくくりたいです。
また、似たような方法ですが、書名の前だけに記号▽を付けたいです。
データが多く毎日の仕事なので大変です。
もし、VBAやマクロで出来るのなら、お知恵を貸してください。
ちなみにExcel2000です。
宜しくお願いします。

【11492】Re:ある列の全てのデータの前後に括弧を...
回答  ichinose  - 04/3/10(水) 8:04 -

引用なし
パスワード
   ▼kenji さん:
おはようございます。

>宜しくお願いします。
>書籍データベースの整形をしていますが、ある列にある全てのデータ(この場合は著者名)の前後を【】でくくりたいです。
>また、似たような方法ですが、書名の前だけに記号▽を付けたいです。
>データが多く毎日の仕事なので大変です。
>もし、VBAやマクロで出来るのなら、お知恵を貸してください。
>ちなみにExcel2000です。
>宜しくお願いします。
ある列がアクティブシートのA列だとして、前後を【】でくくるには・・・、
'=====================================================
Sub main()
  Set rng = Range(Cells(1, 1), Cells(Rows.Count, 1).End(xlUp))
  rng.Value = Application.Evaluate("=""【"" & " _
        & rng.Address & " & ""】""")
End Sub

▽の場合も上記を応用すれば可能かと思います。
確認して下さい。

【11498】Re:ある列の全てのデータの前後に括弧を...
回答  ごんぼほり  - 04/3/10(水) 10:04 -

引用なし
パスワード
   こんにちわ

セルの書式を
"【"@"】" や "▽"@ にすればいいのでは無いかとおもいますが。
いかがでしょうか。

【11517】Re:ある列の全てのデータの前後に括弧を...
発言  kenji  - 04/3/10(水) 19:43 -

引用なし
パスワード
   ありがとうございます。試しましたが、この方法が最適なようです。
ただ、例えばB列の時はどこをどう変えればよいかわかりません。
それと、セルが空白の時には【】を付けず、空白のままにしたいです。
いろいろお手数掛けます。宜しくお願いします。

【11518】Re:ある列の全てのデータの前後に括弧を...
発言  kenji  - 04/3/10(水) 19:44 -

引用なし
パスワード
   なるほど、こういう方法もありますね。
参考にしてみます。
ありがとうございました。

【11520】Re:ある列の全てのデータの前後に括弧を...
回答  ichinose  - 04/3/10(水) 20:29 -

引用なし
パスワード
   kenji さん、ごんぼほりさん、こんばんは。

>ありがとうございます。試しましたが、この方法が最適なようです。
>ただ、例えばB列の時はどこをどう変えればよいかわかりません。
>それと、セルが空白の時には【】を付けず、空白のままにしたいです。
>いろいろお手数掛けます。宜しくお願いします。
では、以下のように変更して下さい。
'=============================================================
Sub main()
  Set rng = Range(Cells(1, 2), Cells(Rows.Count, 2).End(xlUp))
'              ↑と          ↑を2に変更 
  With rng
   .Value = Application.Evaluate("=if(" & .Address & _
        "<>"""",""【"" & " & .Address & " & ""】"","""")")
'数式を空白でなかったら、【】で囲むに変更
   End With
End Sub

このEvaluateメソッド、優れものなんですが、全ての配列数式を
配列と認識してくれるわけではないみたいなので必ず確認が必要ですよ!!
今回は、ちゃんと認識してくれましたが・・・。
(まっ、インタープリタの身になってみると仕方ないんですが・・)

確認してみて下さい!!

【11522】Re:ある列の全てのデータの前後に括弧を...
お礼  kenji  - 04/3/10(水) 21:55 -

引用なし
パスワード
   思っていたとおりのことが出来ました。
すぐ解決方法を見出せる貴殿に脱帽です。
この度はありがとうございました。

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