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も見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
Excelで、図形内の文字をセルに抽出したいです
Excel(エクセル)
-
VBA シートをコピーする際に Copyメソッドは失敗しましたのエラーが出てしまいます
Visual Basic(VBA)
-
-
4
オートシェイプの削除時のエラー回避法
Visual Basic(VBA)
-
5
マクロで選択した図形の選択状態を解除するには
Excel(エクセル)
-
6
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
7
テキストボックスの番号を使ったFor~Next文について
Visual Basic(VBA)
-
8
VBA シートのボタン名を変更したい
Visual Basic(VBA)
-
9
[ EXCEL VBA ] 図形を読み込む順番を制御するには?
Visual Basic(VBA)
-
10
VBA たまに変数がempty値になるエラー
Excel(エクセル)
-
11
エクセルマクロでシート内にある画像のみを選択する
Excel(エクセル)
-
12
条件付書式で「=#N/A」に色を付けたい
Excel(エクセル)
-
13
エクセルVBA 図形の選択法は?
Visual Basic(VBA)
-
14
Excel VBAでオートシェイプ内の文字列を検索し、色を変えたい
Excel(エクセル)
-
15
特定の名前のオートシェイプの有無を知りたい(エクセルVBA)
Excel(エクセル)
-
16
VBからエクセルのテキストボックスの名称を取得したい
Visual Basic(VBA)
-
17
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
18
Excel VBA で自在に図形を変化させたい
Visual Basic(VBA)
-
19
Excel VBAで、ユーザーフォームの値を、モジュールで使用したい。
Visual Basic(VBA)
-
20
エクセルで、オブジェクトの選択を禁止する方法。
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel で行を指定回数だけコピ...
-
Excel VBA インデックスの境...
-
シャープのアクオス sh-m25 を...
-
excelの差込印刷で可視セルだけ...
-
エクセル:VBAで月変わりで、自...
-
VBA 貼付先範囲(行)がいっぱ...
-
VBA:同じ文字列データの比...
-
Excel VBA 時刻でのD...
-
エクセルVBAで 2種のリストを...
-
エクセル マクロのエラー!
-
エクセルVBAで実行時エラー...
-
Excel VBA元データから別シー...
-
スマホ機種変更で旧機種のGoogl...
-
機種変更時にデータは見られる?
-
USIMカードのメモリ容量が一杯...
-
携帯修理出して戻ってきたら、L...
-
709sc
-
携帯電話間のデータ移動の方法...
-
ケータイの電源がいきなり落ち...
-
拡張子「.HUF(.huf)」のファ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBA 別シートの複数の...
-
Excel で行を指定回数だけコピ...
-
Excel VBA インデックスの境...
-
excelの差込印刷で可視セルだけ...
-
VBA:同じ文字列データの比...
-
VBA別シートの最終行の下行へ貼...
-
エクセル:VBAで月変わりで、自...
-
エクセルVBAで 2種のリストを...
-
歯抜けの時間を埋めて行の挿入
-
エクセルVBAで SendKeys "{TAB}"
-
VBAで条件が一致する行のデータ...
-
EXCELマクロで全シート対...
-
VBAの指示の内容 昨日こちらで...
-
Excel VBAでシート内全体に非表...
-
VBAで複数シート選択
-
Excelマクロ データが上書きさ...
-
Excel VBA 時刻でのD...
-
VBA 貼付先範囲(行)がいっぱ...
-
エクセルVBAでの日付順のデ...
-
【WORD差し込み印刷】複数レコ...
おすすめ情報