|    | 
     ▼ジロン さん: 
 
既にとおりすぎさんからお答えが出ていますので蛇足というか別のことも含めて。 
・まず、半角カタカナは、使わないほうがいいですよ。 
 このブックが、社外から送られてきて、かつシート名の変更がプロテクトされているなら 
 しょうがないのですが、そうでなければ全角で。 
・変数は、プロシジャの先頭にまとめて記述したほうがわかりやすくなります。 
・おそらく、この処理は 
 操作者がデータベースシートをアクティブにして、そのどこかの行を選択した上で実行 
 このようなものなんでしょうね。なので、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 
 | 
     
    
   |