Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


10606 / 13644 ツリー ←次へ | 前へ→

【20899】連続したしたActiveSheet.Shapesにする方... kobasan 04/12/23(木) 21:06 質問[未読]
【20901】Re:連続したしたActiveSheet.Shapesにする... ちゃっぴ 04/12/23(木) 23:29 回答[未読]
【20902】Re:連続したしたActiveSheet.Shapesにす... kobasan 04/12/24(金) 0:23 質問[未読]
【20904】Re:連続したしたActiveSheet.Shapesにす... ちゃっぴ 04/12/24(金) 2:22 回答[未読]
【20905】Re:連続したしたActiveSheet.Shapesにす... kobasan 04/12/24(金) 7:49 お礼[未読]

【20899】連続したしたActiveSheet.Shapesにする方...
質問  kobasan E-MAIL  - 04/12/23(木) 21:06 -

引用なし
パスワード
   編集の都合でActiveSheet.Shapesを削除してしまって、
不連続になったものを連ぞしたActiveSheet.Shapesに
する方法があれば教えて下さい。 
(150個くらいのActiveSheet.Shapesを作り直すのは大変)
連ぞしたActiveSheet.ShapesにできるとVBAで扱いやすいので。

ActiveSheet.Shapes("TextBox2").Select
ActiveSheet.Shapes("TextBox4").Select
ActiveSheet.Shapes("TextBox6").Select

【20901】Re:連続したしたActiveSheet.Shapesにす...
回答  ちゃっぴ  - 04/12/23(木) 23:29 -

引用なし
パスワード
   >連ぞしたActiveSheet.ShapesにできるとVBAで扱いやすいので。

その連続したというのが、名前であるならばName Propertyを
再設定してやればいいかと・・・

For Each 〜 Next Statementでの順番(Index)なら、
残念ながら・・・再作成しかありません。

というか、Testするときは、Bookを壊してもいいように
Backupくらい作っておきましょう。

【20902】Re:連続したしたActiveSheet.Shapesにす...
質問  kobasan E-MAIL  - 04/12/24(金) 0:23 -

引用なし
パスワード
   ▼ちゃっぴ さん 今晩は

>連続したというのが、名前であるならばName Propertyを

ActiveSheet.Shapes("TextBox2")のプロパティウインドウを見ても、
IndexもName Propertyなるものも見つけられないのですが、Name Propertyは
オブジェクト名のことでしょうか?Indexは"TextBox2"の2のことでしょうか?

>For Each 〜 Next Statementでの順番(Index)なら、

私がしたいのは
gyou = activecell.row
for i=1 to 150
  ActiveSheet.Shapes("TextBox" & i).text= cells(gyou,i).Text
next
のように連続して使いたいのですが?
たぶん順番(Index)のことかな?

【20904】Re:連続したしたActiveSheet.Shapesにす...
回答  ちゃっぴ  - 04/12/24(金) 2:22 -

引用なし
パスワード
   >私がしたいのは
>gyou = activecell.row
>for i=1 to 150
>  ActiveSheet.Shapes("TextBox" & i).text= cells(gyou,i).Text
>next

そういうことをやったのが1年くらい前なので忘れてましたが・・・
当時作ったCodeによるとName Propertyを変更してやればいいでしょう。

ただし、すでに使っている名前を使用するとErrorになったと
思いますのでExcelでつけられるDefaultの命名規約と
違った名前に変更したほうがいいでしょうね。

たとえば、
[ShapeObject].Name = "Text_Box" & i
とか・・・・

あとは、Excelの名前Boxにて手作業で変更可能なので、
規則性がないならそれで変更してやるのもいいでしょうね。

【20905】Re:連続したしたActiveSheet.Shapesにす...
お礼  kobasan  - 04/12/24(金) 7:49 -

引用なし
パスワード
   ▼ちゃっぴ さん お早うございます。

名前Boxで変更できました。
コロンブスの卵で、教えてもらえば、簡単なことでした。
頭が固くなっていました。
助かりました。有り難うございます。

10606 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free