ここから本文です

EXCEL2013で張り付けた画像(今やりたいのは方位マーク)をセルに入力した数値(角...

nak********さん

2017/7/900:22:30

EXCEL2013で張り付けた画像(今やりたいのは方位マーク)をセルに入力した数値(角度)のとおりに回転させる方法はないでしょうか?

(方位マークをセルに入力した角度に回転)
手動で回転させるのではないです。
よろしくお願いいたします。

閲覧数:
82
回答数:
2

違反報告

ベストアンサーに選ばれた回答

sk_********さん

2017/7/907:14:58

あります。

まず、標準モジュール※に下記のコードを貼り付けてください。

Function FRotationZ(r1, r2)
ActiveSheet.Shapes.Item(r1).ThreeD.RotationZ = r2
End Function

※Excelが開いている状態で「Alt」+「F11」を押すとVBEが起ち上がる。そこで 挿入 → 標準モジュール


次に画像に、名前を付けます。
画像を選択している状態で、左上の名前ボックスを選択し、任意の名前をつける。(今回は「方向マーク」)


最後に、セルにFRotationZ関数を挿入します(画像参照)
=FRotationZ(画像名,角度)
画像名と角度が入力されているセルを指定すると、質問者さまのご希望の動作になると思います。

あります。

まず、標準モジュール※に下記のコードを貼り付けてください。

Function...

質問した人からのコメント

2017/7/9 22:40:53

遅くなりました。VBAは詳しくなかったので思いもつきませんでした。
ご丁寧な説明ありがとうございました。

ベストアンサー以外の回答

1〜1件/1件中

プロフィール画像

カテゴリマスター

ann********さん

2017/7/908:05:00

シートタブの右クリックメニューにある"コードの表示"から開くウィンドウに以下を記述します。
-------
Private Sub Worksheet_Change(ByVal Target As Range)
Dim dig As Long, i As Long
If Target.Address <> "$A$1" Then Exit Sub
dig = Target.Value
For i = 0 To Abs(dig)
Sleep 50
If dig > 0 Then
ActiveSheet.Shapes(1).IncrementRotation 1
Else
ActiveSheet.Shapes(1).IncrementRotation -1
End If
DoEvents
Next
MsgBox "回転終了"
End Sub

さらに、同ウィンドウの[挿入]-[標準モジュール]から表示される画面に次の1行を記述します。
-------
Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

その後、そのウィンドウを閉じます。


セルA1に数値を入力して[Enter]すると、その数値(角度)だけ回転動作します。

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる