Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


10533 / 76734 ←次へ | 前へ→

【71747】Re:図形の指定の仕方
発言  UO3  - 12/4/5(木) 14:12 -

引用なし
パスワード
   ▼ジロン さん:

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

5 hits

【71744】図形の指定の仕方 ジロン 12/4/5(木) 12:25 質問
【71746】Re:図形の指定の仕方 とおりすぎ 12/4/5(木) 13:28 回答
【71747】Re:図形の指定の仕方 UO3 12/4/5(木) 14:12 発言
【71752】Re:図形の指定の仕方 ジロン 12/4/5(木) 22:35 お礼

10533 / 76734 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free