• 締切済み
  • 暇なときにでも

EXCEL VBAでの質問

EXCEL97です。いくつかのワークシートに、それぞれボタンを作っています。各ボタンは、処理に応じて、同じ動きをするサブルーチンを通るようにしています。1のシートのマクロはスムーズに動きます。2のシート以降からは、同じサブルーチンを通るにも関わらず、オブジェクトの不正や、インデックスの有効範囲エラーになってしまいます。 それから、同じ種類のオブジェクトが他のシートにわたる時、配列のようなINDEXをつけることは出来ますか? それと、表を作る時、一つずつのセルを小さくすると、動きが遅くなったり、重くなったりしますか?セルは大きい方がいいのでしょうか? 以上教えて下さい。

共感・応援の気持ちを伝えよう!

  • 回答数2
  • 閲覧数123
  • ありがとう数48

みんなの回答

  • 回答No.2
  • QQQ
  • ベストアンサー率0% (0/0)

1つめ。サブルーチンがわからないと何ともいえないです。 2つめ、オブジェクト変数を使うのはいかがでしょう Dim ob(2) As Object Set ob(0) = Sheets(1).Label1 Set ob(1) = Sheets(1).Label2 とかすればいいのでは。 3つめ主旨がよく見えませんが、画面上にたくさんのセルが表示されていれば 少ないときより画面描画の時間がかかるかもしれません。 しかし、描画を止めればよいでしょう ScreenUpdating プロパティをHELPで参照してください。

共感・感謝の気持ちを伝えよう!

関連するQ&A

  • Excelのマクロを連続で

     Excelのマクロを作ってあるワークシートがいくつかあります。それを、Aのワークシートを立ち上げてボタンを押してそのマクロを起動~終了。それが終わったら、Bのワークシートを立ち上げてボタンを押してそのマクロを起動~終了。それが終わったら、Cのワークシートを立ち上げてボタンを押してそのマクロを起動~終了。というように10回くらい作業しています。以前は、Aの次にCということもありましたが、今は、A~B~Cと決まった順序で起動しますので、これをマクロで自動化できないのでしょうか?ただし、現状のボタンでのそのワークシートのみの起動~終了も可能にしておきたいと思います。

  • エクセルマクロで検索

    エクセル初心者です。 エクセルで表を作ったのですがその中の計算式で月が変わるたびに参照するワークシートが変わるのでマクロの検索をつかいたいと考えています。 表の横に検索するワークシート名と置き換えするワークシート名をいれるセルをつくりマクロを組んで実行すると置き換えが完了するというようなマクロはできませんか?セル自体を検索置き換えはできるのですがセルの中の文字を指定の仕方がわかりません。 説明がヘタなのでわかりにくいかと思いますがよろしくおねがいします。

  • EXCEL VBAでこんなことがしたい。

    EXCELのワークシートに図形描画でボタンを書きます。 そのボタン上に文字を書きます。 このボタンにマクロの登録を行ないます。 その後、このボタンをクリックするたびに ボタン上に描かれた文字列が書き換わるような マクロを書きたいのですが、可能でしょうか?

  • 回答No.1

ActiveSheetプロパティで、ボタンを貼り付けてあるSheetが参照できますよね。Sheetを配列化して扱うときは、Sheetsコレクションが有効です。

共感・感謝の気持ちを伝えよう!

関連するQ&A

  • ワードからエクセルマクロの起動

    ワードに「挿入」-「オブジェクト」-新規作成タブの「エクセルワークシート」を選択してワークシート(表)を挿入しました。 そして、このエクセルの表に色をつける等の処理をしたいのですが、 この時エクセルを開かないであくまでもワード上でやりたいのです。 でもワードマクロからこのエクセル表を制御するには限りがあり、 エクセルマクロを起動できたらいいと思うのですが、その方法がわかりません。 どのように記述すればいいのでしょうか? わかりにくい質問かもしれませんがどなたかよろしくお願いします。 ワード、エクセルともに98です。

  • EXCEL VBAで複数シート内のセルをまとめて表を作成

    EXCELマクロ(VBA)を教えてください。 なやんでいることは、 目的:シート1からシート5までの表の値をシート6に一覧表を作成させる。 ・シート1からシート5まで シート内の表からセル値をコピーしてマクロで(ボタンか何かで)シート6にシート1からシート5のセル値を貼り付けていくような動作をさせられるようなプログラムをつくりたいです。    表(一覧)を作成させたいので わかる方プログラミングを教えてください。よろしくお願いします。

  • EXCEL の複数シートを選択するVBA

    お世話になります。 複数のシートがあるEXCELファイルで、特定のセル(A1)に「オリンピック」と入力れているワークシートをすべて選択するマクロを組みたいのです。ご教示よろしくお願い致します。

  • エクセル 複数ワークシート セルのコピー

    お世話になります。 複数のワークシート上に同じ表があり、その表のある特定のセル(例えば、A1セル)の数字を、新たに作成した特定のワークシートのどこでもいいので一度にCOPYしたいです。 ワークシートからワークシートへ毎回COPYという手間を省きたいと思っています。 マクロを使ってでもいいですし、何かいい方法があればご教授よろしくお願いします。

  • エクセルVBAでApllication.Caller

    エクセル2000です。 マクロをワークシート上に貼ったフォームのボタンなどから呼び出す場合、ボタンの名前はApllication.Callerでわかるので、同じ一つのマクロでも呼び出されたボタンに応じた動きができるのですが、他のマクロから呼び出した場合、Apllication.Callerではエラーになってしまいます。 例 Sub test() x = Application.Caller If x = "AAA" Then MsgBox "AAA" If x = "BBB" Then MsgBox "BBB" Cells(1, 1).Value = "1" End Sub 他のマクロから呼び出された場合、エラーとしないためにはOn Error Resume Next以外ではどのようにすればいいでしょうか?

  • EXCELのVBAで質問があります。

    EXCELのVBAで質問があります。 次の処理を実現しようと、  1.テンプレート的なファイルを用意する。  2.作業ファイルの作業シート(VBA組み込み有)を    初期化するために「1」のファイルからセルをコピーする    ※マクロがあるため、単純なシートコピーは出来ない 以下のようにコーディングしました。  objXls = CreateObject("Excel.Application")  objXlsWorkBook = objXls.Workbooks.Open("C:\Template.xls")  objXlsSheet = objXlsWorkBook.Sheets("テンプレートシート")  objXlsSheet.Range("1:10").Copy  ActiveWorkbook.Worksheets("作業シート").Range("1:10").PasteSpecial すると、コピーした内容がオブジェクト(図)として貼り付けられました。 どうすればオブジェクトではなく、セルとしてコピーが可能になるのでしょうか。 「Workbooks.Open("C:\Template.xls")」としてもいいのですが、 ファイルが見えてしまうのが都合が悪いのです。 どうかよろしくお願いします。

  • 【エクセル】セルの数値を1増やすボタンを設置したいのですが… Excel

    よろしくお願いします。 現在,このようなワークシート(とグラフ)があります。 セルA1に商品IDを入れる → その商品IDの売上が月ごとに表示される。 このワークシートにボタンを追加し, クリックするたびに,このA1の数値が1ずつ増え,商品IDが変わっていくようなものを作りたいのですが, その場合,どのような手順やマクロを書けばよいでしょうか? エクセルにはある程度慣れているのですが,マクロについては詳しくありません。 ボタンの作成の仕方は分かるのですが,手元のマニュアル本を読んではみたものの,どのような式(?)を入力すればよいのか, 分からず,ご教示いただければ幸いです。

  • エクセル2000でのVBAについて

    エクセル2000のマクロで下記のことをやりたい。 保護がかかっているシートのあるセルに、オブジェクトの挿入したファイル を貼り付けたい。 あるセルの書式の保護のロックを解除しても貼り付けができない。 シートの保護を外さないとできないのでしょうか。 シートの保護を外さないでできる方法はありますか? あれば教えてください。                       以上

  • エクセルでオブジェクトの表の列数を変えたい

    エクセルで、オブジェクトとしてワークシートを挿入しました。 セルの中に表が入っている状態です。 リンクは外していたと思います。 この表の行数を増やしたいのですが、 何か良い方法はないでしょうか。

  • エクセルVBA

    Sub 金額未記入のセルをカウント() Dim kensu As Long Range("I100").End(xlUp).Select 'リストの最終行を、上方向に向けて指定する Selection.Offset(0, 1).Select '上で指定したセルの、右の列のセルを指定する Selection.Font.Bold = True '選択しているセル範囲の文字を太字にする Range(ActiveCell, "J4").Select '最後のセルから上までの範囲を選択する ActiveWorkbook.Names.Add Name:="kingaku", RefersToR1C1:=Selection '金額の範囲に名前をつける Range("I1").FormulaR1C1 = "=COUNTBLANK(kingaku)" 'セルI1に式を代入する End Sub 経常費ファイルについての質問です。 月ごとに、ワークシートがあり、品名、個数のあとに、総額を入れています。 個数は最初からデータが入っているため、総額のところが未記入だと、まだ 品物が入荷していない、と、わかるように工夫しました。 上記のマクロで、各ワークシートごとには、未記入セルの個数を表示できるのですが、 違う月のワークシートでも、その数字が表記されてしまいます。 そこで、マクロを実行するボタンを押すと、その月の未記入セルの個数を出すことは できるのですが、 ワークシートごとに、そのワークシートにあった数字を表記できたままにするには、 どうしたらよろしいでしょうか。 わかりにくい質問で、申し訳ありませんが、よろしくお願いします。