|
▼ジロン さん:
既にとおりすぎさんからお答えが出ていますので蛇足というか別のことも含めて。
・まず、半角カタカナは、使わないほうがいいですよ。
このブックが、社外から送られてきて、かつシート名の変更がプロテクトされているなら
しょうがないのですが、そうでなければ全角で。
・変数は、プロシジャの先頭にまとめて記述したほうがわかりやすくなります。
・おそらく、この処理は
操作者がデータベースシートをアクティブにして、そのどこかの行を選択した上で実行
このようなものなんでしょうね。なので、ActiveCell というものを使うのはやむをえないとして
それでも、コードであるセルをSelectして、ActiveCellとして使うのは、感心しません。
・同じことがシートにもいえます。とおりすぎさんがおっしゃっているように
シートをSelectして、そのシートをアクティブシートとして使う方法も感心しません。
・コードの記述の開始桁がバラバラですね。インデントがついているようで、規則性がない。
このようなコードは後で、自分が読むのに骨が折れますよ。
ということを加味して、ちょっとお化粧直しをしてみました。
ご参考まで。
Sub テスト()
Dim ReturnSheet As Worksheet
Dim findvalue As Variant
Dim shn As String
If ActiveSheet.Name <> "データベース" Then
MsgBox "データベースシートをアクティブにして実行してください"
Exit Sub
End If
findvalue = Cells(ActiveCell.Row, 4).Value
Select Case Cells(ActiveCell.Row, 2).Value
Case "A"
shn = "Sheet2"
Case "B"
shn = "Sheet3"
Case "C"
shn = "Sheet4"
Case Else
shn = "Sheet5"
End Select
Sheets(shn).Shapes("Rectangle 27").DrawingObject.Formula = findvalue '…※
End Sub
|
|