| 
    
     |  | おはようございます。 ちゃっぴさんがよりよりコードを提示してくださっていますが、
 一応、momoさんのやり方を修正してみました。
 これで当方では動いているようです。
 
 Sub test()
 
 Dim 変換対象列 As Integer ’string型だとエラーになるのでIntergerで
 Dim 略語リスト As Integer
 Dim 変換対象列範囲 As String
 Dim 略語 As String
 Dim 正式名 As String
 Dim i As Integer
 
 変換対象列 = ActiveCell.Column
 略語リスト = 1
 
 'Columns(数値)の形の方が良いと思いますので
 ’以下の一文は必要ないです。
 '以下の形でしようとおもったら、「ActiveCell.Column」で取得した
 ’数値から、対応するアルファベットを割り出さないとダメなんだと思います。
 '''' 変換対象列範囲 = 変換対象列 & ":" & 変換対象列
 
 'この↓行は何をしているのかわからないけど、必要ないのでは?
 '''Cells(1, "I").Value = 変換対象列
 '''Cells(2, "I").Value = 変換対象列範囲
 
 i = 1
 
 Do Until Cells(i, 略語リスト).Value = ""
 
 略語 = Cells(i, 略語リスト).Value
 正式名 = Cells(i, 略語リスト + 1).Value
 ’↓Selectしなくても直接出来ます。
 Columns(変換対象列).Replace What:=略語, Replacement:=正式名, LookAt:=xlPart, _
 SearchOrder:=xlByRows, MatchCase:=False
 i = i + 1
 Loop
 
 End Sub
 
 ところで、「Cells(1, "I").Value」みたいな書き方あるんですね。
 MsgBox Cells(2, "I").Address
 ってしたら、ちゃんと「$I$2」が返ってきました(^^;
 
 
 |  |