• 締切済み

EXCEL VBAでの質問

QQQの回答

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

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

関連するQ&A

  • エクセル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 経常費ファイルについての質問です。 月ごとに、ワークシートがあり、品名、個数のあとに、総額を入れています。 個数は最初からデータが入っているため、総額のところが未記入だと、まだ 品物が入荷していない、と、わかるように工夫しました。 上記のマクロで、各ワークシートごとには、未記入セルの個数を表示できるのですが、 違う月のワークシートでも、その数字が表記されてしまいます。 そこで、マクロを実行するボタンを押すと、その月の未記入セルの個数を出すことは できるのですが、 ワークシートごとに、そのワークシートにあった数字を表記できたままにするには、 どうしたらよろしいでしょうか。 わかりにくい質問で、申し訳ありませんが、よろしくお願いします。

  • Excelのマクロで特定のセル範囲に貼り付けてある写真を削除したい

    エクセルのマクロを使って、ワークシートの特定の範囲に貼り付けてある写真を全て消したいのですが、貼り付けの際に各写真には名称を付けていなかったので、オブジェクト名で選択して削除するという手段が使えません。 イメージとしては、図形描画ツールバーの「オブジェクトの選択」ボタンを押して特定のセル範囲にあるオブジェクトを選択して削除するといった作業をマクロ化したいのです。ワークブックが数百あり、写真の張り付いているセル範囲は全て同じなのですが、写真のオブジェクト名は全て異なり規則性が無いのです。 良い方法があれば教えてください。

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

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

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

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

  • Excel 2010 VBAで教えてください。

    Excel 2010 VBAで教えてください。 Doubleの配列 Dim A(100) as double に ワークシート "Sheet1" セル A1:A100 の値を一発(For loop等を利用しない) で読み込むにはどうすればよいのでしょうか。 同じく、 Doubleの配列 A(100)を ワークシート "Sheet2" セル B1:B100 に一発で書き出すのはどうすればよいのでしょうか。  Variantにて Dim A as Variant では  A = Sheets("Sheet1").Range("A1:A100") で 読み込めました。 また Sheets("Sheet2").Range("B1:B100")で書き込みできましたが、double等でどうすれば良いのか知りたいです。

  • エクセルでの値の自動代入

    エクセルでワークシートのセルからでもユーザーフォームからでもいいのですが、違うワークシート上の表(列が項目、行が日付)の当日日付のセルにマクロで作ったボタンを押すと値が挿入されるような方法はありますか? アクセスで値の代入のようにできればいいのですが。 マクロでもVBAでもいいのですが、できる方法はあるでしょうか?

  • SelectionとSelectについて?(エクセルVBA)

    任意に範囲選択したセルのうち数式が定義されているセルのみを選択するマクロについて教えてください。 次のようにコードを書いて Sub TEST() ' MsgBox Selection.Address Selection.SpecialCells(xlCellTypeFormulas).Select End Sub 任意の複数のセルに数式を定義します。(配置はばらばらでも構いません) あるセル範囲を選択して上のコードを実行すると、次のような動作になります。 数式を定義したセル(以降、数式セル)を1つ以上と、数式の定義に関わらず別の1つ以上を含むセル範囲を選択した場合は、希望通りに数式セルが選択されます。 しかし、数式セルを一つだけ選択してコードを実行すると、シート全体で数式セルが選択されてしまいます。 ヘルプをみると、Selectionには、セルを選択しているときは、Range オブジェクトが返されます。とあり、SpecialCellsには、オブジェクトを返すメソッドです。指定された条件を満たしているすべてのセル (Range オブジェクト) を返します。とあります。 素人的には、Selection プロパティで返されるオブジェクトの種類は、何を選択するかによって異なります。の部分で、返されるオブジェクトが一つのセルを選択した場合は、オブジェクトがシートになってしまっているからだと推測します。しかし、複数のセルを結合したセルに数式を定義した場合で、一つの数式結合セルを選択して、MsgBox Selection.Addressと表示させると、Selectionは、複数のセルからなるセル範囲を返している様なメッセージが表示されるのに、次の行では、同じくシート全体が選択されてしまいます。 回避する方法ってないのでしょうか?教えて頂けないでしょうか?宜しくお願い致します。 また、説明が悪くてすみません。

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

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

  • エクセル ボタンのVBA 

    印刷のボタンを作成しました。 原本シートに書き込んで終了した時に保存ボタンを押したら シート名を記載して保存するVBAが一個あります それとは別に印刷ボタンを作成したいのですが 原本シートの表には未記入の場所には条件式でセルに色を つける条件を付けてます。 印刷ボタンを押した時 全部のセルの色を白色に戻し指定した範囲の部分を印刷するボタンを作れないでしょうか? 例 A1:K73まで印刷するなど

  • VBA 配列とワークシートどっちがいい?

    数値計算するマクロを作っていて思うことがあり質問しました。 ワークシートに3万セルのデータがあり、それを元に計算し、結果を別シートに記入します。 (1)計算をすべてワークシート上で行う方法 (2)データを全て配列に読み込み、配列上で計算し、結果のみ配列に書き出す方法 どちらがいいの? 考えや情報が色々と頭の中でぐるぐる回ってます。 ・せっかくの「表計算」ソフトなのだから当然(1)? ・シート上の方が色々な関数を使える ・配列上の方が計算速いと聞く ・3万セルごときどちらも同じ? ・10万セルの配列読み込み11秒(For Next)2秒(Range型変数使用)の書籍記事 ・100万セルの配列読み込みコンマ数秒(For Next)コンマゼロ数秒(Range型)のweb上記事 今まで私自身が体感したのは、例え3万個といえど ・行削除が多いと遅い ・コピペが多いと遅い(5千回で10秒) ・ファイル数が多いと遅い(open/close1個1秒弱) ・シート上だと関数はやっぱり豊富 ・セルへのアクセスは不明?? どっちがいいですか?100万セルでも同じですか? どっちでやってますか?