|
つんさま
切り貼りしたので変な書き方をしてました。すいません。
やりたいことは、F列にある略語で入力されたデータを
A列とB列に並んだ略語対応表から正式名称に置換です。
A B ... F F
y 焼肉定食 ... y 焼肉定食
o 親子丼 ... o を 親子丼 に置換したいです。
g 牛丼 ... o 親子丼
. . ... g 牛丼
. . ... y 焼肉定食
アドバイスを参考にしつつ下記のように書き直しました。
ただ新たに問題が発生しました。
columns(変換対象列範囲).Select '変換対象の範囲を指定して略語を正式名に置換
↑のところでcolumnsのところをRowsにするとちゃんとその“行”が
置換されます。でもcolumnsだとエラーが出てしまいます。
また、
Dim 変換対象列範囲 As String
変換対象列範囲 = 変換対象列 & ":" & 変換対象列
↑この部分変数を設定せず
columns(変換対象列:変換対象列).Select
としてもコンパイルエラーになりました。
columnsをrowsに変えてもコンパイルエラーでした。
変数“変換対象列範囲”と同じ表記方法だと思うのですが。
**************************************************
Dim 変換対象列 As String
変換対象列 = ActiveCell.Column
Dim 略語リスト As Integer
略語リスト = 1
Dim 変換対象列範囲 As String
変換対象列範囲 = 変換対象列 & ":" & 変換対象列
Cells(1, "I").Value = 変換対象列
Cells(2, "I").Value = 変換対象列範囲
Dim i As Integer
i = 2
Do Until Cells(i, 略語リスト).Value = ""
Dim 略語 As String
略語 = Cells(i, 略語リスト).Value
Dim 正式名 As String
正式名 = Cells(i, 略語リスト + 1).Value
columns(変換対象列範囲).Select '変換対象の範囲を指定して略語を正式名に置換
Selection.Replace What:=略語, Replacement:=正式名, LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False
i = i + 1
Loop
End Sub
|
|