
いつもお世話になります
今、外部から指定された複数のシートを(ここでは2個にします)
下記のようにAraay関数で削除しようとしています
Worksheets(Array("B2側壁⑯", "B2側壁⑰")).Delete
ところが、削除するシートの数が決まっていない場合のArrayの作り方が
分かりません
例えば
moji2 = Array("B2側壁⑯", "B2側壁⑰")
Worksheets(moji2).Delete
は上手く行くのでが
Arrayの中を別の変数で組み立ててから行うとインデックスエラーになります
moji1 = """B2側壁⑯""" & ", " & """B2側壁⑰"""
moji2 = Array(moji1)
Worksheets(moji2).Delete
シートの数が任意なのでどうしても外で組み立てなければならないと思います
以上の解決方法が有りましたら教えてください
尚、For文で一つづつ削除するのではなくこの方法で何とかお願いします
No.2ベストアンサー
- 回答日時:
No1です。
>Splitはよく使いますが、Array文にも使えるのですか?
ArrayとSplitは別物です。
文字列をArrayにぶち込もうとしてうまく行かないようですので、Split関数で文字列を分割して配列に入れれば宜しいかと。
参考サイトに示される通り、文法は
Split(対象文字列, 区切り文字)
で、配列を得られます。
(デフォルトでは、添字が0始まりの配列だったと思います)
例えば、
Split("ああ,いい,うう", ",")
で、["ああ", "いい", "うう"] という配列が得られます。
>UserFormのListviewに出力した中から選択されたものをになります
Listviewは使ったことがないのでよくわかりませんが、選択項目を取得するのにループで取得していたりしませんか?
ListView.SelectedItems(i)
のような形で取得しているのなら、わざわざ文字連結をしなくても、直接その値を順に配列に入れてゆけば、(文字列を介する必要も無く)そのループ処理だけで配列を作成できるだろうという意味です。
いつもありがとうございます
ちょっと、Arrayという文字に拘り過ぎました
ご指摘通り、Splitで配列を作りうまく行きそうです
また、文字に対しては環境依存文字も扱えるようにしているため
ListView上では?になる文字をカバーするために別な配列も
用意して対処しています
シート番号を使うことも考えられますが
ここからDocuWorksに出力もできるようにしているため
ファイル名の処理などすべてを文字操作で行っています
シートが多くなると扱いづらくなるのでUserFormを使って
操作しやすくしています
以上、本当にありがとうございました
No.1
- 回答日時:
こんにちは
どうしても文字列で処理したいのなら、ArrayではなくSplit関数を用いれば、結果を配列として取得できます。
https://learn.microsoft.com/ja-jp/office/vba/lan …
なお、
>For文で一つづつ削除するのではなく~~
と同様の考え方ではありますが、事前に配列を定義しておいて、ループで要素として追加してゆく方法でも、上記と同様の配列を得ることが可能でしょう。
個々のシート名をどのようにして得ているのか不明ですが、通常は配列などで受け取るのではないでしょうか?
あるいは、何かの処理をループで行って、該当するものだけピックアップするとかであれば、わざわざ一旦文字列化するようなことをしなくても、そのループの中で配列にピックアップしてゆけばすむと思いますけれど・・・
こんにちは
いつもありがとうございます
Splitはよく使いますが、Array文にも使えるのですか?
もし、具体的な例が有ったらお願いします
尚、削除するシートはUserFormのListviewに出力した中から
選択されたものをになります(マルチ選択ON)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excel VBAで、実行時にsheet上のコマンドボタンのCaptionを変更する。 2 2024/03/08 11:40
- Visual Basic(VBA) Excelのマクロについて教えてください。 1 2024/06/18 09:20
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2024/03/27 14:27
- Visual Basic(VBA) エクセルのマクロについて教えてください。 5 2023/06/02 08:44
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/06/01 14:45
- Visual Basic(VBA) Excel VBA 文字列のセルを反映させたいです 2 2024/02/24 00:06
- Visual Basic(VBA) Excel VBA マクロ あるフォルダー内の複数のファイルを統合したいです 1 2024/02/19 21:37
- Visual Basic(VBA) 【マクロ】シートの変数へ入れるコードがエラーとなるのはなぜでしょうか? 1 2025/04/27 15:39
- Excel(エクセル) シート名を簡単に書く方法があれば教えてください。 4 2023/08/24 12:40
- Visual Basic(VBA) フォルダの場所を可変にしたいです(マクロ) 4 2023/05/11 10:00
このQ&Aを見た人はこんなQ&Aも見ています
-
エクセルの改行について
Visual Basic(VBA)
-
以下のプログラムの実行結果はどうなると思いますか? その理由も教えてください。
Visual Basic(VBA)
-
算術演算子「¥」の意味について
Visual Basic(VBA)
-
-
4
ダブルクリックで貼り付けた画像からリンクのみ削除し、画像を残したい。
Visual Basic(VBA)
-
5
VBA 最終行の取得がうまくいかず上書きされてしまいます。
Visual Basic(VBA)
-
6
VBAの「To」という語句について
Visual Basic(VBA)
-
7
改行文字「vbCrLf」とは
Visual Basic(VBA)
-
8
【マクロ】変数を使った、文字の種類の変更にて、エラーとなる。
Visual Basic(VBA)
-
9
Vba セルの4辺について罫線が有るかどうか調べたいのですが
Visual Basic(VBA)
-
10
vbsでのwebフォームへの入力制限?
Visual Basic(VBA)
-
11
【マクロ】シートの変数へ入れるコードがエラーとなるのはなぜでしょうか?
Visual Basic(VBA)
-
12
【マクロ】開いているブックの名前を取得した後、名前をセルに1つづつ入力するには?
Visual Basic(VBA)
-
13
【関数】同じ関数なのに、エラーが出るエクセルと出ないエクセルある?
Excel(エクセル)
-
14
エクセルのdatedif関数を使って、年齢と月齢を入力しました。 関数を入力して、問題なく使えたので
Excel(エクセル)
-
15
vba テキストボックスとリフトボックスについて
Excel(エクセル)
-
16
エクセルのリストについて
Excel(エクセル)
-
17
VBAでセルの書式を変えずに文字列を置換する方法をご教示ください
Visual Basic(VBA)
-
18
Visualbasicの現状について教えてください
Visual Basic(VBA)
-
19
VB.net 文字列から日付型へ変更したい
Visual Basic(VBA)
-
20
C言語 関数、変数の宣言について
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで複数のシートをフォ...
-
括弧があるとHYPERLINKで飛べな...
-
エクセルVBA 4行飛ばしで転記す...
-
arrayformulaをしようするとエ...
-
【マクロ】シートの変数へ入れ...
-
Vba Array関数について教えてく...
-
IHクッキングヒーターの操作パ...
-
原付 レッツシート開け方
-
車内ビショビショ・・・
-
Excel VBA シート名変更時、重...
-
XLAのシート表示
-
ポップコーンの捨て方
-
水の染み込んだバイクのシート...
-
建築模型、カーブの作り方
-
ドライブレコーダーのSDカード...
-
フォルツァ バッテリーを外して...
-
XJR400 のシートを替えようと思...
-
ポケットにミシンでワッペンを...
-
飛行機の座席について 3列シー...
-
バイクのシートがベタベタする...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで複数のシートをフォ...
-
括弧があるとHYPERLINKで飛べな...
-
飛行機の座席について 3列シー...
-
2024年式タフトに乗っています...
-
フォルツァ バッテリーを外して...
-
Excel複数シートから日付と文字...
-
IHクッキングヒーターの操作パ...
-
ポケットにミシンでワッペンを...
-
エクセルVBA 4行飛ばしで転記す...
-
シートベルトの固定解除
-
原付 レッツシート開け方
-
BRIDEのシート張り替えってでき...
-
【マクロ】シートの変数へ入れ...
-
水の染み込んだバイクのシート...
-
ポップコーンの捨て方
-
マジェスティ(4HC)のシート下...
-
車のシートがへたってきました...
-
カッティングシートの上からア...
-
建築模型、カーブの作り方
-
電車のシートって何でこんな暑...
おすすめ情報