トップページ > プログラム > 2015年04月27日 > ebWiZqjs

書き込み順位&時間帯一覧

11 位/174 ID中時間01234567891011121314151617181920212223Total
書き込み数0002000000000001000000003



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
Excel VBA 質問スレ Part36 [転載禁止]©2ch.net
VB.NET質問スレ(Part42) [転載禁止]©2ch.net

書き込みレス一覧

Excel VBA 質問スレ Part36 [転載禁止]©2ch.net
542 :デフォルトの名無しさん[sage]:2015/04/27(月) 03:39:21.42 ID:ebWiZqjs
>>541
ちょっと考えてみたけど
>A1からA5までオートシェイプで5種類の図形を作っておき
シェープはセルに紐づいてるわけじゃない
すべてのシェープの位置をチェックすれば可能かもしれない
>B2に数値の1から5までしか入力できないものとしたうえで
めんどいから考慮しない
>C1にA2の図形が表示される
シェープを移動すると元がなくなる
新規シェープを表示するなら、本来自分でシェープ作って必要な属性セットしてやる必要があるけど
クリップボード経由でコピー&ペーストで行けるかもしれん

と言う感じでやればできるんじゃないだろうか
Excel VBA 質問スレ Part36 [転載禁止]©2ch.net
543 :デフォルトの名無しさん[sage]:2015/04/27(月) 03:42:06.35 ID:ebWiZqjs
と言う事でコード書いてみた
シートモジュールで
Function getShape(r As Integer) As Shape
Dim s As Shape
For Each s In Shapes
If s.TopLeftCell.Column = 1 And s.TopLeftCell.Row = r Then
Set getShape = s
Exit Function
End If
Next
End Function
Private Sub Worksheet_Change(ByVal Target As Range)
Dim s As Shape
If Target.Address <> "$B$1" Then Exit Sub
Set s = getShape(Target.Value)
If s Is Nothing Then Exit Sub
Application.EnableEvents = False
s.Copy
Paste Range("C1")
Application.EnableEvents = True
End Sub

こんな感じでどうだろう
色々手抜きなので想定外の動作は考慮してない
VB.NET質問スレ(Part42) [転載禁止]©2ch.net
267 :デフォルトの名無しさん[sage]:2015/04/27(月) 15:51:30.37 ID:ebWiZqjs
>>266
2013で試したけどちゃんとStringだけど?

暗黙の変換が理解できないのか?
もしかして、aの型が途中で変われとか思ってるのか?


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。