質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

2回答

1953閲覧

VBA:名前付き画像の選択に関するトラブル

masafumi55

総合スコア12

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

1クリップ

投稿2020/10/21 05:30

いつも大変お世話になっております。masafumi55です。此度もつまづきました。検索力がないのか30分ほど調べても出てきませんでした。
デバックで値確認も行いました。手も足も出ません。お忙しいところ恐縮ですが、ご教示お願いいたします。

<■目的>
名前「2」の画像を選択し削除することが目的となります。

<■トラブル>
下記の<<Code1>>を実行した場合、「指定した名前のアイテムが見つかりませんでした」とエラーコメントが出てしまいます。

前提:
pageの値は3であることは確定です。理由はデバックした際に、下記の条件分岐を通ったことが確認出来たためです。
(ゆえに、「page - 1」の値は 「2」になりますから、それをString型に変換することで「Shapes("2")」ということになり、名前が「2」の画像を選択削除できるはずなのですが、、、。その他にも、「"Str(page -1 )"」とダブルクオテーションで囲ってみたりもしましたがだめでした。)

<<Code1>>

If page = 3 Then Worksheets("importImageCardViewList").Shapes(Str(page - 1)).Select Selection.Delete

<■やってみたこと>
以下のとおり、Shapesの名前を計算式でなく、直接文字列として目的の数字「2」をいれてまわしてみました。結果は、名前「2」の画像を選択の上削除ができました。

<<Code2>>

If page = 3 Then Worksheets("importImageCardViewList").Shapes("2").Select Selection.Delete

<■質問事項>
値が「3」のpage変数を使用し、名前「2」の画像を選択するにはどのような記述があるのでしょうか。
お忙しいところ恐れ入りますが、ご教示お願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

VBAのStr関数は、先頭に符号が入るスペースが確保された文字列(先頭に余分なスペースが付けられた文字列)を返します。

そのため、str(2)は"2"ではなく、" 2"になります。

この、"2"と" 2"の違いが原因になっているのではないでしょうか?

投稿2020/10/21 05:51

coco_bauer

総合スコア6915

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

masafumi55

2020/10/21 05:59

coco_bauer様 詳細なご解説誠にありがとうございます。 "2"と" 2"は確かに違いました。正直この「半角スペース」をわざわざ作るstr()に興味がわきました笑。 今のへっぽこな頭では「なんでわざわざ半角つくるん?」って感じですが、きっと用途があるのでしょうね。お忙しい中のご教授、誠にありがとうございました!
guest

0

ベストアンサー

下記ではいかがでしょうか。

VBA

1CStr(page - 1)

Strで正の数値を変換すると頭に半角スペースが入ってしまうと思います。

投稿2020/10/21 05:43

radames1000

総合スコア1923

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

masafumi55

2020/10/21 05:53

radames1000様 さっそくのご回答誠にありがとうございます。解決いたしました! 文字列変換は、「Str()」と「CStr()」の2種類存在していたのですね。 検索ワードで、「VBA 文字列変換」を実行した場合、「Str()」とダブルクオテーションの紹介があったので、勝手にそれだけと認識してしまいました(汗) とても勉強になりました!ご教授誠にありがとうございます(^^)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問