Excel VBA質問箱 IV

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

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


33115 / 76734 ←次へ | 前へ→

【48843】Re:別のシートのデータを利用
発言  ichinose  - 07/5/11(金) 7:31 -

引用なし
パスワード
   ▼シスアド さん:
おはようございます。

>
>正常に動作しないということですが、
>もしよろしければ教えてもらえないでしょうか?
何を「教える」のですか?

「正常に動作しない のは何故か?」

ということですか?

ならば、実行してみればわかると思いますが、

コンパルエラー(文法的に正しくない記述がいくつかあります)

となって動作しませんよね?
>>sub()
>>a=0
>>Dim c As Range
>>
>>For Each c ln Range("BK2")
>>Select Case c.Value
>>
>>Case a
>> ActiveSheets.Shapes.AddShape(msoShapeOval,159.75,29.25,15.75).Select
>> Selection.ShapeRange.Fill.Visible=msoFalse
>>Case 1
>>ActiveSheets.Shapes.AddShape(msoShapeOval,249.75,157.25,15.75).Select
>> Selection.ShapeRange.Fill.Visible=msoFalse
>>Case 2
>>ActiveSheets.Shapes.AddShape(msoShapeOval,343.75,29.25,15.75).Select
>> Selection.ShapeRange.Fill.Visible=msoFalse
>>Case 3
>>ActiveSheets.Shapes.AddShape(msoShapeOval,432.75,29.25,15.75).Select
>> Selection.ShapeRange.Fill.Visible=msoFalse
>>Case Else
>>MsgBox "データが空欄です"
>>End Select
>>Next
>>End Sub
 

Sub sample() 'プロシジャーの名前を付けないとエラーになります。文法です
  Dim a As Long 'データ宣言すること
  Dim c As Range
  a = 0
'セルBK2単独の値だけで処理させるのですから、For each文は要らないですよね?
  Set c = Range("bk2")
  Select Case c.Value
    Case a
     ActiveSheet.Shapes.AddShape( _
       msoShapeOval, 159.75, 29.25, 15.75, 15.75).Select
'Activesheetsというプロパティはありませんし、
'Addshapeメソッドのオプションの数が足りません
     Selection.ShapeRange.Fill.Visible = msoFalse
    Case 1
     ActiveSheet.Shapes.AddShape( _
       msoShapeOval, 249.75, 157.25, 15.75, 15.75).Select
     Selection.ShapeRange.Fill.Visible = msoFalse
    Case 2
     ActiveSheet.Shapes.AddShape( _
       msoShapeOval, 343.75, 29.25, 15.75, 15.75).Select
     Selection.ShapeRange.Fill.Visible = msoFalse
    Case 3
     ActiveSheet.Shapes.AddShape( _
       msoShapeOval, 432.75, 29.25, 15.75, 15.75).Select
     Selection.ShapeRange.Fill.Visible = msoFalse
    Case Else
     MsgBox "データが無効です"
'セルBK2は空欄でもこのケースには入ってきませんよ!!
    End Select
End Sub

と出来るかぎりシスアド さんのコードを残すように修正しました。
元コードと比較してください。


私が提示したコードも試して見てください。

シート名が正しければ、作動するはずですよ!!


>>何故? という箇所がありますが、深い理由があるのだろうと
>>解釈し、そのまま残しました。
>>
>>Sub sample()
>>  Dim a As Long
>>  Dim ok As Boolean
>>  Dim o_left As Double
>>  Dim o_top As Double
>>  Dim c As Range
>>  Set c = Worksheets("データ").Range("o2")
>>  a = 0
>>  ok = True
>>  Select Case c.Value
>>   Case ""
>>    MsgBox "データが空欄です"
>>    ok = False
>>   Case a
>>    o_left = 159.75
>>    o_top = 29.25
>>   Case 1
>>    o_left = 249.75
>>    o_top = 157.25
>>   Case 2
>>    o_left = 343.75
>>    o_top = 29.25
>>   Case 3
>>    o_left = 432.75
>>    o_top = 29.25
>>   Case Else
>>    MsgBox "データが無効です"
>>    ok = False
>>   End Select
>>  If ok = True Then
>>    With Worksheets("リスト").Shapes. _
>>      AddShape(msoShapeOval, o_left, o_top, 15.75, 15.75)
>>     .Parent.Select
>>     .Fill.Visible = msoFalse
>>     .Select
>>     End With
>>    End If
>>End Sub

0 hits

【48805】別のシートのデータを利用 シスアド 07/5/9(水) 22:05 質問
【48807】Re:別のシートのデータを利用 ichinose 07/5/10(木) 7:38 発言
【48827】Re:別のシートのデータを利用 シスアド 07/5/10(木) 19:09 発言
【48843】Re:別のシートのデータを利用 ichinose 07/5/11(金) 7:31 発言
【48857】Re:別のシートのデータを利用 シスアド 07/5/11(金) 23:16 発言
【48864】Re:別のシートのデータを利用 ichinose 07/5/12(土) 17:55 発言
【48871】Re:別のシートのデータを利用 シスアド 07/5/13(日) 20:00 お礼
【48874】Re:別のシートのデータを利用 シスアド 07/5/13(日) 21:02 質問
【48878】Re:別のシートのデータを利用 ichinose 07/5/14(月) 8:59 発言
【48941】Re:別のシートのデータを利用 シスアド 07/5/16(水) 19:27 お礼

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