A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
No2です。
>オートシェイプの位置固定の参考URLなどご存じでしたら教えてください。
検索すればよいだけの話。
http://www4.synapse.ne.jp/yone/excel2013/excel20 …
https://supvalue.net/archives/3153
No.2
- 回答日時:
No1です。
何をなさりたいのかさっぱりわかりませんけれど・・
>オートシェイプが連続する場合などは罫線のセルのように
>オートシェイプのアドレス範囲が重複してしまいます。
オートシェイプがセルにまたがっていれば、セル範囲は複数セルになりますし、シェイプが重なっていれば当然範囲も重複します。
そもそもですが、ユーザが自由に操作できる環境であれば、(誤操作も含めて)シェイプは自由に位置を変えられます。
また、セルの幅や高さの変更でも、そのサイズが変わることがあります。
(変わらない設定もありますが)
位置が変わっては困るのであれば、初めから位置固定にして、セルサイズの変更もできないようにロックをかけておけば済むのではないでしょうか?
>オートシェイプの位置とセル位置を使って情報の分析をしています
位置がわかりさえすれば良いのなら、生成する際にシェイプの名称をセルアドレスにしておくなども考えられます。
こちらであれば、どこに移動されても最初に設定した(はずの)位置は、名称を見ればわかりますので。
ただし、同じ位置に複数のシェイプを設定できるようなシステムであれば、連番を振るなどの工夫が必要になるかも知れません。
No.1
- 回答日時:
こんばんは
どのような「調整」をなさりたいのか不明ですが、ロジカルに説明できる内容であれば可能と思われます。
例えば、当該ShapeのTopLeftCellプロパティで、左上に該当するセル位置を取得できますので、それを基準に調整するとかでしょうか?
https://learn.microsoft.com/ja-jp/office/vba/api …
普通に、Left、Topプロパティで、シートに対する位置を取得することもできますし、Width、HeightでShapeのサイズ(=外包矩形)も取得できます。
>(VBA作成者と操作者が異なる為)
通常は、「作成者しか使えないコード」は作成者が個人的に使う為にしか利用しません。
汎用的に利用するのなら、そちらのコードを修正すべきかと想像します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルマクロでアニメを作る方法を教えてください。 1 2023/02/07 14:27
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Excel(エクセル) 【Excel:条件付き書式 データバー】 正負の軸の位置を変更する方法を教えてください 3 2023/01/08 19:41
- Excel(エクセル) エクセルVBA 任意のセルの選択時、指定のセルの値を表示 1 2023/04/21 08:13
- Visual Basic(VBA) VBAについて教えてください。 Excelで セルのB6~BG24でダブルクリックすると ダブルクリ 1 2022/06/02 17:07
- Visual Basic(VBA) エクセルVBA ダブルクリックしたら色反転を指定したセルのみにしたい 2 2022/04/06 12:52
- Visual Basic(VBA) Excel VBA 教えてください。 VBA初心者です。 詳しい方がいましたら教えてください。 下記 3 2023/04/25 11:22
- Visual Basic(VBA) エクセルのVBAでダブルクリックでチェックを入れたあと 1 2022/10/26 20:30
- Visual Basic(VBA) Excel VBA 書式変更で困ってます。 オートフィルターの日付フィルターを用いて データの絞り込 2 2022/07/26 22:16
- Visual Basic(VBA) ExcelのVBAを使い、複数シートの同一箇所を、同一条件にて一括でソルバーを回す方法について 1 2022/04/23 11:49
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教える店舗&オフィスのセキュリティ対策術
中・小規模の店舗やオフィスのセキュリティセキュリティ対策について、プロにどう対策すべきか 何を注意すべきかを教えていただきました!
-
「ChatGPT-3.5」の回答ですが
Excel(エクセル)
-
こんにちは。Excelのデータ入力規則のことで教えてください。複数条件を指定したい場合の構文ですが、
Excel(エクセル)
-
エクセルおいて,論理式の関数を使う場合は,空白のセルは,数字では0と扱われますか?
Excel(エクセル)
-
-
4
2つのシートを連動させたいです
Excel(エクセル)
-
5
エクセルの数式で教えてください。
Excel(エクセル)
-
6
[Excel] 以下のような、行がズレている2つの表を関数を使って同値チェックを行いたいです。 欲し
Excel(エクセル)
-
7
Excelで、改行がある場合の条件式(関数)の書き方を教えてください
Excel(エクセル)
-
8
数字をコンマで区切った文字列の集計のマクロの修正
Excel(エクセル)
-
9
手書き日報にエクセルのデータを重ねて印刷したい
Excel(エクセル)
-
10
エクセルのVBAでのコピー
Excel(エクセル)
-
11
下記のような条件付き書式はどうやって設定したら良いのか教えていただきたいです。 180時間を満たない
Excel(エクセル)
-
12
Excel VBAについて【図形を組み合わせて作成した、料金別納表示の削除の仕方】
Excel(エクセル)
-
13
エクセルの改行・改列について質問です。
Excel(エクセル)
-
14
ExcelのブックAのシート1を、ブックBに関数を残したまま移動させたいです。 普通に移動をしたらブ
Excel(エクセル)
-
15
[Excel] 2つの表のセル同士の突合方法について質問です。 添付の表で、 {=AND(EXACT
Excel(エクセル)
-
16
エクセルについて
Excel(エクセル)
-
17
ノートPCでExcelを一部見せない状態で外部モニターに出力したい
Excel(エクセル)
-
18
複雑なシフト表から1日ごとの出勤者、シフトを抜き出したいです
Excel(エクセル)
-
19
2013Excel保存済みファイルグレーアウト Excelを開こうとするとメニュー以外全てグレーにな
Excel(エクセル)
-
20
エクセルのプルダウンリストについて
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
セルをクリック⇒そのセルに入力...
-
対象セル内(複数)が埋まった...
-
エクセルで指定したセルのどれ...
-
Excelで数式内の文字色を一部だ...
-
【エクセル】IF関数 Aまたは...
-
貼り付けで複数セルに貼り付けたい
-
excelのCOUNTIF関数で、『範囲=...
-
(Excel)数字記入セルの数値の後...
-
エクセルのセルの枠を超えて文...
-
エクセル 足して割る
-
EXCEL VBA セルに既に入...
-
複数のセルのいずれかに数字が...
-
Excelでのコメント表示位置
-
枠に収まらない文字を非表示に...
-
Excel 例A(1+9) のように番地の...
-
エクセル オートフィルタで絞...
-
【Excel】 セルの色での判断は...
-
ロール紙の残量の計算を教えて...
-
複数セルに入力した数字をカン...
-
Excelで、「特定のセル」に入力...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで指定したセルのどれ...
-
【エクセル】IF関数 Aまたは...
-
貼り付けで複数セルに貼り付けたい
-
対象セル内(複数)が埋まった...
-
Excelで数式内の文字色を一部だ...
-
セルをクリック⇒そのセルに入力...
-
Excelでのコメント表示位置
-
エクセル 足して割る
-
excelのCOUNTIF関数で、『範囲=...
-
EXCEL VBA セルに既に入...
-
エクセル オートフィルタで絞...
-
エクセルのセルの枠を超えて文...
-
(Excel)数字記入セルの数値の後...
-
エクセルの一つのセルに複数の...
-
【Excel】 セルの色での判断は...
-
Excel2003 の『コメント』の編...
-
エクセル “13ヶ月”を“1年1ヶ月...
-
複数のセルのいずれかに数字が...
-
枠に収まらない文字を非表示に...
-
excelの特定のセルの隣のセル指...
おすすめ情報
オートシェイプの数がすごい量なので自動調整ができると、とても助かります。何卒よろしくお願いします。
Sub テスト()
Dim i As Long
For i = 1 To Worksheets("テスト").Shapes.Count
Worksheets("テスト").Cells(i, 1).Value = Worksheets("テスト").Shapes(i).TopLeftCell.Address
Worksheets("テスト").Cells(i, 2).Value = Worksheets("テスト").Shapes(i).BottomRightCell.Address
Next i
End Sub
Sub テスト2()
Dim i As String
Dim j As String
Dim pos As Range
Dim row As Long
For row = 1 To 2
i = Worksheets("テスト").Cells(row, 1).Value
j = Worksheets("テスト").Cells(row, 2).Value
Set pos = Application.Intersect(ActiveCell, Range(i & ":" & j))
If pos Is Nothing Then
MsgBox i & ":" & j & "範囲外です"
Else
MsgBox i & ":" & j & "範囲内です"
End If
Next row
End Sub
オートシェイプが連続する場合などは罫線のセルのようにオートシェイプのアドレス範囲が重複してしまいます。(オートシェイプの位置とセル位置を使って情報の分析をしています)オートシェイプの正しい位置が特定できません。発想変えて元のセルにオートシェイプを戻せないのかと考えました。
>位置が変わっては困るのであれば、初めから位置固定にして、セルサイズの変更もできないようにロックをかけておけば済むのではないでしょうか?
オートシェイプの位置固定の参考URLなどご存じでしたら教えてください。
使っているオートシェイプは沢山の指定したセルをダブルクリックするとオートシェイプがセル内に入ります。イベントプロシージャを使っています。
つたいない説明で恐れ入りますがよろしくお願いします。