A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
> もし、そうだとしたら上記のVBAをどのように分ければよいでしょうか?
ActiveCell.Activate
MsgBox "表示を終了してよろしいですか", vbOKOnly + vbInformation, "表示"
この2行を消して
.Shapes.Range(sh).Line.Visible = msoFalse
を別の Sub にするだけだと思います。
> Shape38,39,40になると、また「インデックスが境界を超えています」と出ました・・・
こちらの環境(Excel2000)ではShapes200でも動作します。
オートシェイプのインデックスはオートフィルタの▼や入力規則リストの▼でも増えるのですが、実際にインデックスが超えていなければエラーは出ませんでした。
実際のファイルやシートの状態を見えれば良いのですが、、、
やりたい事が今ひとつ掴めないのですが、もっと違うアプローチで同様の事が実現出来ないか模索した方が良いかも知れません。
No.2
- 回答日時:
Test1を実行するとどんな数字が表示されますか?
これが16未満なら ActiveSheet.Shapes(16).Select は「インデックスが境界を超えています」って事です。
Sub Test1()
MsgBox ActiveSheet.Shapes.Count
End Sub
下記は参考に
Sub Test2()
Dim sh(), s As String
With ActiveSheet
s = .Range("C117").Text
Select Case s
Case "A"
sh = Array(.Shapes(14).Name, .Shapes(15).Name)
Case "B"
sh = Array(.Shapes(2).Name, .Shapes(3).Name, .Shapes(4).Name)
Case "D"
sh = Array(.Shapes(8).Name, .Shapes(9).Name, .Shapes(10).Name)
Case Else
MsgBox "指定した地点 " & s & " はありません", _
vbOKOnly + vbExclamation, "指定範囲外"
Exit Sub
End Select
.Shapes.Range(sh).Line.ForeColor.SchemeColor = 10
.Shapes.Range(sh).Line.Visible = msoTrue
ActiveCell.Activate
MsgBox "表示を終了してよろしいですか", vbOKOnly + vbInformation, "表示"
.Shapes.Range(sh).Line.Visible = msoFalse
End With
End Sub
この回答への補足
ありがとうございます。
test1を実行すると「25」と表示されます。
test2は私が組んでいるものを違う形で表示してくれたのですね。
かなり感動しています。
本当にありがとうございます。
あつかましいようですが、もうひとつお聞きしたいのですが・・・
マクロを実行した際に今のないようですとメッセージボックスに
「表示を終了してもよろしいですか?」と言う表示が出て、シートを動かす(上下や左右)ことが
できなくなりますが、それを動かせるようにすることはかのですか?
このShapeを表示させるVBAと終了させるVBAを
別々に組み、それぞれのVBAが実行できるようなボタンを作るほうが賢明なのでしょうか?
もし、そうだとしたら上記のVBAをどのように分ければよいでしょうか?
No.1
- 回答日時:
本当に上限の問題でしょうか?
該当部分のソースコードを載せた方がアドバイスが得られやすいと思いますよ。
例えば、シートにオートシェイプを1~2個おいて下記を実行すると同じエラーが出ます。
Sub Test()
cnt = ActiveSheet.Shapes.Count
MsgBox "シェイプが " & cnt & "個しかないのに" & vbCrLf & _
cnt + 1 & "個目を選択しようとしてるとか、、"
ActiveSheet.Shapes(cnt + 1).Select
End Sub
この回答への補足
返答が遅くなってしまい、スミマセン。
現在、下記のようなVBAを組んでいてエラーがでます。
Sub iro()
Dim i As String
i = Range("c117").Value
If i = "A" Then
ActiveSheet.Shapes(16).Select
ActiveSheet.Shapes(15).Select
ActiveSheet.Shapes(14).Select Replace:=False
hyoji
MsgBox "表示を終了してよろしいですか", vbOKOnly
ActiveSheet.Shapes(16).Select
ActiveSheet.Shapes(15).Select
ActiveSheet.Shapes(14).Select Replace:=False
modosu
ElseIf i = ”B" Then
ActiveSheet.Shapes(2).Select
ActiveSheet.Shapes(3).Select Replace:=False
ActiveSheet.Shapes(4).Select Replace:=False
hyoji
MsgBox "表示を終了してよろしいですか", vbOKOnly
ActiveSheet.Shapes(2).Select
ActiveSheet.Shapes(3).Select Replace:=False
ActiveSheet.Shapes(4).Select Replace:=False
modosu
ElseIf i = "D" Then
ActiveSheet.Shapes(8).Select
ActiveSheet.Shapes(9).Select Replace:=False
ActiveSheet.Shapes(10).Select Replace:=False
hyoji
MsgBox "表示を終了してよろしいですか", vbOKOnly
ActiveSheet.Shapes(8).Select
ActiveSheet.Shapes(9).Select Replace:=False
ActiveSheet.Shapes(10).Select Replace:=False
modosu
Else
MsgBox "指定した地点がありません", vbOKOnly
End If
End Sub
Sub hyoji()
Selection.ShapeRange.Line.Visible = msoTrue
'「線なし」に設定されている場合、線を表示
Selection.ShapeRange.Line.ForeColor.SchemeColor = 10
Range("A1").Select
End Sub
Sub modosu()
Selection.ShapeRange.Line.Visible = msoFalse
'「線なし」に設定
Range("A1").Select
End Sub
いかがでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAでPowerPointからExcelにレイアウト通りに出力する 4 2023/07/05 12:22
- Visual Basic(VBA) ExcelのVBAで教えてください。 Vlookupで、X X.value = applicatio 1 2022/12/26 13:40
- CAD・DTP Autocad Scriptファイルからの入力とコマンドラインからの入力が違う 1 2023/08/01 09:13
- Excel(エクセル) Excel VBAでのセルやシェイプの色指定について。 たとえば、”red”という文字列を用いて … 4 2022/11/15 09:44
- Excel(エクセル) Excelヘルプの原文を表示する最速の方法(手順)には? 1 2023/08/11 11:30
- Visual Basic(VBA) 動かなくなってしまった古いVBAを動くようにしたい 8 2022/09/20 13:57
- Access(アクセス) Accessで予定表を作成しようとしてます。 テーブル フィールド名 連番 オートナンバー型 年月日 2 2023/07/23 11:40
- Excel(エクセル) Excel VBAで、行の高さを、上下1文字分程度高くしたい 3 2023/04/23 00:17
- Visual Basic(VBA) Vba テキストボックスの文字列をボタンで入力するとテキストボックスの端の文字列が更新されない 2 2022/05/21 23:32
- Excel(エクセル) 関数EXACT(文字列,文字列)とexcelVBA 3 2022/04/14 15:07
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
Excelで、図形内の文字をセルに抽出したいです
Excel(エクセル)
-
VBA シートをコピーする際に Copyメソッドは失敗しましたのエラーが出てしまいます
Visual Basic(VBA)
-
[ EXCEL VBA ] 図形を読み込む順番を制御するには?
Visual Basic(VBA)
-
-
4
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
5
マクロで選択した図形の選択状態を解除するには
Excel(エクセル)
-
6
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
7
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
8
エクセルVBAでセル番地を指定してオブジェクト名取得
Excel(エクセル)
-
9
オートシェイプの削除時のエラー回避法
Visual Basic(VBA)
-
10
VBA シートのボタン名を変更したい
Visual Basic(VBA)
-
11
VBAでCSVファイルが使用中かどうかの確認
Visual Basic(VBA)
-
12
エクセルマクロでシート内にある画像のみを選択する
Excel(エクセル)
-
13
エクセルvbaでの図形のカット(コピー)ペーストについて
Excel(エクセル)
-
14
VBAでユーザーフォームを再表示させたい。
Excel(エクセル)
-
15
テキストボックスの番号を使ったFor~Next文について
Visual Basic(VBA)
-
16
Excel VBAで、ユーザーフォームの値を、モジュールで使用したい。
Visual Basic(VBA)
-
17
EXCEL VBA シートをコピーする時にエラーが発生してしまう件
Excel(エクセル)
-
18
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
19
エクセルで、オブジェクトの選択を禁止する方法。
Excel(エクセル)
-
20
特定の名前のオートシェイプの有無を知りたい(エクセルVBA)
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
excelの差込印刷で可視セルだけ...
-
Excel で行を指定回数だけコピ...
-
エクセル:VBAで月変わりで、自...
-
VBA別シートの最終行の下行へ貼...
-
エクセルVBAで SendKeys "{TAB}"
-
excel:色付き文字の抽出と変換法
-
ノートパソコン 2in1について i...
-
エクセルのマクロで会社別・商...
-
Excelマクロ データが上書きさ...
-
821sh 非通知拒否設定について
-
VBAで 任意図形のみ残してその...
-
Excel VBA 複数条件にマッチし...
-
スマホで古いPCにテザリング
-
みかんの房に付いている繊維の...
-
VBA:同じ文字列データの比...
-
Excel VBA インデックスの境...
-
画像のものはシャワージェルな...
-
Excel VBAでシート内全体に非表...
-
エクセルVBA 別シートの複数の...
-
Excel プロジェクト行程をまと...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel で行を指定回数だけコピ...
-
エクセルVBA 別シートの複数の...
-
シャープのアクオス sh-m25 を...
-
excelの差込印刷で可視セルだけ...
-
Excel VBA インデックスの境...
-
VBA:同じ文字列データの比...
-
エクセルVBAで 2種のリストを...
-
エクセル:VBAで月変わりで、自...
-
歯抜けの時間を埋めて行の挿入
-
エクセルVBAで SendKeys "{TAB}"
-
VBAで条件が一致する行のデータ...
-
VBA別シートの最終行の下行へ貼...
-
EXCELマクロで全シート対...
-
Excel VBAでシート内全体に非表...
-
VBA 貼付先範囲(行)がいっぱ...
-
VBAで複数シート選択
-
【VBA】UserForm1の中で使うワ...
-
VBAで複雑な構成の転記
-
【WORD差し込み印刷】複数レコ...
-
エクセルVBAでの日付順のデ...
おすすめ情報