エクセルVBAで住所録を作成
住所録シートに次のようにコードを作っています。
Option Explicit
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Address = "$B$1" Then
顧客名検索
ElseIf Target.Address = "$C$1" Then
フリガナ検索
ElseIf Target.Address = "$D$1" Then
住所検索
ElseIf Target.Address = "$E$1" Then
郵便番号検索
ElseIf Target.Address = "$A$1" Then
オートフィルタ解除
カナ順に設定
Else
Exit Sub
End If
End Sub
そして標準モジュールには
Sub 顧客名検索()
ans = InputBox("顧客名を入力してください")
With ActiveSheet
If .AutoFilterMode Then 'オートフィルタモードがオンなら
.AutoFilterMode = False 'リセットする
End If
.Range("A1:G1").AutoFilter 'オートフィルタモードをセット
.Range("A1:G1").AutoFilter Field:=2, Criteria1:="=*" & ans & "*" '2つ目のフィルターに検索文字
End With
End Sub
Sub フリガナ検索()
ans = InputBox("顧客カナを入力してください")
With ActiveSheet
If .AutoFilterMode Then 'オートフィルタモードがオンなら
.AutoFilterMode = False 'リセットする
End If
.Range("A1:G1").AutoFilter 'オートフィルタモードをセット
.Range("A1:G1").AutoFilter Field:=3, Criteria1:="=*" & ans & "*" '3つ目のフィルターに検索文字
End With
End Sub
Sub 住所検索()
ans = InputBox("住所を入力してください")
With ActiveSheet
If .AutoFilterMode Then 'オートフィルタモードがオンなら
.AutoFilterMode = False 'リセットする
End If
.Range("A1:G1").AutoFilter 'オートフィルタモードをセット
.Range("A1:G1").AutoFilter Field:=4, Criteria1:="=*" & ans & "*" '4つ目のフィルターに検索文字
End With
End Sub
Sub 郵便番号検索()
ans = InputBox("郵便番号を入力してください")
With ActiveSheet
If .AutoFilterMode Then 'オートフィルタモードがオンなら
.AutoFilterMode = False 'リセットする
End If
.Range("A1:G1").AutoFilter 'オートフィルタモードをセット
.Range("A1:G1").AutoFilter Field:=5, Criteria1:="=*" & ans & "*" '5つ目のフィルターに検索文字
End With
End Sub
Sub オートフィルタ解除()
Application.CutCopyMode = False
Selection.AutoFilter
Range("A1").Select
End Sub
Sub カナ順に設定()
Range("C1").Select
ActiveWorkbook.Worksheets("住所録").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("住所録").Sort.SortFields.Add Key:=Range("C1"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("住所録").Sort
.SetRange Range("A2:IV65536")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("A2").Select
Selection.AutoFilter
End Sub
と入れています。
VISTAで作ったのですが、このファイルを共有にして使おうとすると、XPのパソコンでは、A1セルをダブルクリックすると、コードが黄色になり、マクロが中断されます。
B1~G1は問題なくマクロが実行されるのに・・・。
もう一台のVISTAでは同じ共有状態で使っても問題ありません。
どうすればXPでも問題なく使えるのでしょう?
お礼
まさに知りたい方法でした。 ありがとうございました。