Excel VBA質問箱 IV

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

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


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

【63922】セル内容を書き換えたい KEN 09/12/31(木) 17:29 質問[未読]
【63923】Re:セル内容を書き換えたい かみちゃん 09/12/31(木) 17:42 発言[未読]
【63926】Re:セル内容を書き換えたい KEN 09/12/31(木) 17:58 お礼[未読]

【63922】セル内容を書き換えたい
質問  KEN  - 09/12/31(木) 17:29 -

引用なし
パスワード
   いつもお世話さまになってます。

今は職場も正月休みなのですが、
初仕事から必要になるExcelファイルがあったので持ち帰りました。
VBA等も初心者のため、それを処理することができずにいます。
件数が多くて大変なため、どなたか助けてください。

例えば、A列の各セルには、
A1セル:10番
A2セル:123番3
A3セル:2345番66 などと
「番」で区切られた文字または数字が抽出されて
半角や全角で並んでいる状態です。

その「番」よりも右側に何もない場合は
A1セル:10番 → B1セル:10  「番」を無くした表示にして
「番」より右側にある場合は、
それをハイフン(−)に置き換えたいのです。

「番」の左右の桁数も一定ではありません。

条件判断や文字の置き換えをしなくてはいけませんが、
どのように記述すれば良いのでしょうか。
宜しくお願い致します。

【63923】Re:セル内容を書き換えたい
発言  かみちゃん  - 09/12/31(木) 17:42 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>その「番」よりも右側に何もない場合は
>A1セル:10番 → B1セル:10  「番」を無くした表示にして
>「番」より右側にある場合は、
>それをハイフン(−)に置き換えたいのです。
>
>「番」の左右の桁数も一定ではありません。
>
>条件判断や文字の置き換えをしなくてはいけませんが、
>どのように記述すれば良いのでしょうか。

概ね以下のような感じでできると思います。

Sub Sample()
 Dim v As Variant
 Dim lngRow As Long
 
 v = Range("A1:B3").Value
 For lngRow = 1 To UBound(v, 1)
  If v(lngRow, 1) Like "*番" Then
   v(lngRow, 2) = "'" & Mid(v(lngRow, 1), 1, Len(v(lngRow, 1)) - 1)
  Else
   v(lngRow, 2) = Replace(v(lngRow, 1), "番", "-")
  End If
 Next
 Range("A1:B3").Value = v
End Sub

【63926】Re:セル内容を書き換えたい
お礼  KEN  - 09/12/31(木) 17:58 -

引用なし
パスワード
   かみちゃん さんへ

ありがとうございます。スッキリと解決致しました。

28日の御用納めから悩んでおりましたが、
2つのシートの10万件余りのセルデータを
自力で一つづつ修正していくしか方法がないのかと
諦めていたところでした。

指摘して頂いたVBAは、中身を解読して、
少しでも自分の身になるようにさせて頂きます。
大晦日のお忙しい折に、ありがとうございました。

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