Excel VBA質問箱 IV

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

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


33092 / 76738 ←次へ | 前へ→

【48871】Re:別のシートのデータを利用
お礼  シスアド  - 07/5/13(日) 20:00 -

引用なし
パスワード
   ▼ichinose さん:
こんばんわ。
わかりにくいのに理解していただいて本当に助かります。
ありがとうございました。
マクロを理解されていてすごいですね〜
勉強の仕方などあるのでしょうか?
なにかあったらまたよろしくお願いします。

>▼シスアド さん:
>こんにちは。
>
>>目的としては、単独で動作させるのが目的ではないんですけど
>>最終的には、データがBK2だけではなく縦にBK3BK4・・・と複数入れて
>>BK2は、sheet3,BK3はsheet4・・・というふうに実行結果を出力させていく
>>その時のsheetはデータがある数だけ作られるというようにしたいのですが・・・
>>意味が伝わりましたかね?わからなければいってください。
>
>はっきりではありませんが、何となくならわかります・・・が、
>
>>>下記のように、セルBK2に0.1.2.3のいづれかが入力された場合Caseによって条件があ>>るマクロを作成しました。
>>>これを同じSheetのリストという名前のセルBK2ではなく、データという名前のSheetの>>セルO2に値が入力されており、それを使用し、リストという名前に出力したいのですが>>どうしたらよいでしょうか?
>
>最初の投稿の↑の仕様とは違いますね!!
>
>マクロ実行前のシート構成
>
>マクロを含むブックには、
>  xxxxというシート名のシート
>  yyyyというシート名のシート(複数あるならすべて記述)
>  ・
>  ・
>
>というようにこんなところから 正確に記述してください。
>
>特に今回は、シートを追加するのですよね?
>だったら、どこに追加するかも正確に記述してください。
>
>
>マクロの入力データに相当するデータの情報も正確に記述してください。
>(まあ、これは、ある程度は記述されていましたが・・・)
>
>
>このマクロの入力データに相当するデータは、
>  シートxxxxというシート名のシートのセルBK2から決まった行数では
>  ありませんが、入力されています。
>
>    A   B ・・・・ BK
> 1             作成位置指示
> 2              1
> 3              2
> 4              0
> 5              3
> 6              1
> 7              2
>
>一例ですが、上記のように入力されています。
>行数は、上記の例ではセルBK7までですが、一定ではありません。
>3行の場合もあれば、20行の場合もあります。
>
>シートxxxxのセルBK2以下のセルの値を基に
>オートシェープの円を作成します。
>
>
>作成するオートシェープの円の作成位置がセルの値によって違います。
>
>又、セルBK2の値で作成するオートシェープの円は、
>
>このシートxxxxに作成するのではなく、
>新たに作成するシート(マクロで作成する)に作成します。
>
>同様にBK3の値によって、作成するオートシェープの円も
>別に新規作成されたシート上に作成します。
>
>このようにシートxxxxのセルBK2以下にオートシェープの円の作成指示データが
>ある限り新規にシートを作成し、
>その作成されたシート上に作成指示データで示される位置に
>オートシェープの円を作成します。
>
>それぞれのシートに作成するオートシェープの円の作成位置は、
>
> 作成指示データ   シートのLeft、シートのTop
>    0        159.75    29.25
>    1        249.75    157.25
>    2        343.75    29.25
>    3        432.75    29.25
>
>
>上記のようになっています。
>
>
>とこのような仕様でよいのですか?
>
>だとしたら、シスアド さんこの程度の仕様の提示はしなければなりません。
>
>
>このような仕様だとして・・・・。
>
>・新規ブックにシートを1枚のみにしてください。
> (既定で、3枚作成されていても削除して1枚にしてください)
>
>・この1枚シートのシート名はSheet1としてください。
> このシートのセルBK2以降に円の作成指示番号が入っているとします。
> 
>標準モジュールに
>'===================================================================
>Sub sample()
>  Dim ok As Boolean
>  Dim o_left As Double
>  Dim o_top As Double
>  Dim crng As Range
>  Dim c As Range
>  With Worksheets("sheet1")
>    For Each c In .Range("bk2", .Cells(.Rows.Count, "bk").End(xlUp))
>     ok = True
>     Select Case c.Value
>      Case 0
>        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
>        ok = False
>      End Select
>     If ok = True Then
>       With Worksheets.Add(after:=Worksheets(Worksheets.Count))
>         .Name = "sheet" & c.Row
>         DoEvents
>         With .Shapes.AddShape(msoShapeOval, o_left, o_top, 15.75, 15.75)
>           .Fill.Visible = msoFalse
>           End With
>         End With
>       End If
>     Next
>    End With
>End Sub
>
>
>記述したようなシートの準備が出来たら、
>上記のSampleを実行してみてください。
>
>セルBk2から、BK7に上述のようなデータが入力されていた場合、
>
>Sheet2からSheet7というシートが追加作成され、それぞれのシートに
>指示データに対応した位置に円が作成されます。
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 お礼

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