- ベストアンサー
特定のシートを削除する
いつもお世話になっています。 INパラメータがA~Zあり、各パラメータごとにシートを作成し、 その中に各パラメータごとのデータ表を作成しています。 このとき、表示するデータが全くないパラメータのシートを 削除したいのですが、出来るのでしょうか? 最初にシートをパラメータの数だけ作り、(シート名はパラメータの名前と同じ) そこでシート分ループさせています。 表示データの有無はプログラムにより、判断できます(Flg=1が返ってきます)。 Flg=1ならそのシート(パラメータA)を削除して次のシート(パラメータB)へ・・・ といった感じなのですが・・・。 シートの削除の仕方は載っているのですが、特定のシートを削除するには どうしたらいいのでしょう。 どなたか知ってる方、教えてください!!
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (3)
- tamagawa49
- ベストアンサー率46% (123/265)
回答No.3
- papayuka
- ベストアンサー率45% (1388/3066)
回答No.2
- papayuka
- ベストアンサー率45% (1388/3066)
回答No.1
お礼
・・・すみません、途中で[補足する]ボタンを押してしまいました。 つけ足しです。↓ パラメータA~Zの"A~Z"は変数の意味で書いてました。 "ParamA~ParamZ"にすればよかった、と反省してます。 ホント、ややこしくわかりにくい書き方ですみません・・・。 特定のシートを消す方法はわかりました。 シートの作成なのですが、データを書き込むフォーマットが用意されており、 データの有無がわからないCount数分コピーしていました。 ので、不要シートも出来てしまうんです。 ちょっとやり方を変えてみることにします。 本当に色々教えていただき、助かりました。ありがとうございました。 また機会がありましたらよろしくお願いします(ペコリ)。
補足
わかりやすい回答をありがとうございます。 すみません、質問の書き方以前に聞き方がなってないですねm(__)m 実はExcelの他にSQLサーバを使って連携処理を取っています。 書くとややこしくなると思って省略したのですが、かえって解りにくい質問に なってしまいました・・・。 『Result=MyFunc(Count,Ret1,Ret2,Ret3)』の"MyFunc"はCountとRet1,Ret2を受け取り、 それに関するデータとデータの有無(Ret1)をレコードセットで返す ストアドプロシージャです。 なので『Set Result=MyFunc(Count,Ret1,Ret2,Ret3)』と記述しています。 (すみません、INとOUTを間違えてRet1,Ret2と書いてました。さらにややこしくさせてしまってます・・・) そして"Result"はResult.MoveFirstや、.RecordCountなどで使用します。 For Count=1 to MaxCount SheetName = "No" & CStr(Count) Worksheets(SheetName).Activate Set Result=MyFunc(Count,(略),Ret3) If Ret3=0 Then 'データが存在する場合 RowPos=5 '行指定 For i=0 to Result.RecordCount - 1 Cells(RowPos,3).Value=Result![レコードセットのフィールド名] 'Resultをセルに書き込み RowPos=RowPos+2 Next i End If Set Result=Nothing Next Count またもソースの抜粋ですみませんが、こんな感じで処理しています。