- 締切済み
ExcelのVBAでRangeとCellsをWSHから使いたいのですが・・
エクセルに書き込むマクロのコードを書いていたのですが、 Exl.range(Cells(1, 1), Cells(3, 4)).Font.Bold = True のような部分が、VisualBasic や OFFICEのVBA上で 参照設定でExcelを指定していると、動くのですが、 同じコードが、WSHでは参照設定ができないせいなのか、 動きません。WSHの場合、どのようにしたらよいのでしょうか。 よろしくお願いします。
- accessdb_user
- お礼率58% (18/31)
- Visual Basic
- 回答数2
- ありがとう数2
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- todo36
- ベストアンサー率58% (728/1234)
>Range や Cells は、もっと階層をたどったようなオブジェクトの >表現方法が必要なのだろうかと思ったのですが・・ VB上の参照設定と同じように、アプリ~ブック~シートですよね。
- qwedesu
- ベストアンサー率31% (6/19)
Set Exl = WScript.CreateObject("Excel.Application") 上の1行を追加してからつかえます。 Exl.Range(Cells(1, 1), Cells(3, 4)).Font.Bold = True
補足
ありがとうございます。 説明が不足していました。すみませんでした。 CreateObject をやっても うまくいかなかったのです。 Set Exl = WScript.CreateObject("Excel.Application") Exl.Range(Cells(1, 1), Cells(3, 4)).Font.Bold = True で WSHを実行しても、 型が一致しません。: 'Cells' というエラーが出ます。 もしかしたら、 Range や Cells は、もっと階層をたどったようなオブジェクトの 表現方法が必要なのだろうかと思ったのですが・・
関連するQ&A
- range cells 名称があれば教えてください
MsgBox range("a1").Value MsgBox Cells(1, 1).Value どちらもセルA1の値を取得できるコードですが それぞれ何方式っていう名称があれば教えてもらえますか? 上はRange方式、で下は、Cells方式でしょうか? (エクセルvbaです)
- ベストアンサー
- Visual Basic
- Excel VBA Cells 絶対参照 書き方
Excel VBAにてお尋ねいたします。 Excel VBAにてCellsを使用してセル範囲を指定させていただく際に、絶対参照($A$1:$E$10など)を使用する場合はどのように記述すればよろしいでしょうか? Cellsを使用するのは、セル範囲が毎回異なるため、範囲指定に変数を使用しているためです。 相対参照でしたら、Range(Cells(1,1),Cells(Rows<行番号の変数>,Cols<列番号の変数>))といった記述かと思いますが、絶対参照の場合はどのように記述すればよろしいでしょうか?
- ベストアンサー
- Visual Basic
- エクセル マクロについて Range と Cells について
エクセル2003 OSはXP を使っています。 以下のとおり、全く同じコードにも関わらず、前者は動き、後者は動きません。 なお、ClearContents を Clear に変えても Copy に変えても、同様の結果です。 しかし、Cells を使わずに、"A4:C10" 等、番地で直接書くと、後者も動きます。 後者のコードを Cells で動かす方法は無いでしょうか? また、何故こんな現象がおこるのでしょうか? なお、シート名などは、間違いありません。 どなたか教えてください。 Sheets("基本データ作成").Range(Cells(3, 3), Cells(qwe, 4)).ClearContents Sheets("検討データ").Range(Cells(4, 1), Cells(qwe, 3)).ClearContents
- ベストアンサー
- オフィス系ソフト
- WSHスクリプトから動かしたEXCEL・VBAマクロでWSHスクリプトを停止する方法
WSHスクリプトからEXCELファイルのVBAマクロを呼び出し実行させます。 このマクロ内ではif関数で設定している条件の真偽を判定しています。偽の場合、マクロは終了しEXCELファイルは一旦閉じられます。そして一定時間がたったら、WSHスクリプトのループ処理で再び同じマクロが開かれif関数で条件判定を行います。 もし、真の場合、マクロの設定処理の実行・終了とともにWSHのループ処理も終了させたいのですが、VBAマクロからそのマクロを実行させているWSHスクリプトを停止させることは可能でしょうか。
- ベストアンサー
- その他(プログラミング・開発)
- Range("A1")⇔cells(1,1)の変換。
EXCELのマクロについて質問します。 Range("A1")⇒(1,1) cells(1,1)⇒("A1") に一発変換する方法を教えて下さい。 時間があるかた宜しくお願いします。
- ベストアンサー
- オフィス系ソフト
- ExcelのマクロをWSHから実行させると「型が一致しません」のエラーがでます。
WSHからExcel2000のマクロを実行させています。このマクロはセルの計算式の結果(セル(1,2))をif関数で比較するコードが入っています。 If Cells(1, 2).Value = "8月" Then hensu = 1 End If これをWSHから実行させると「型が一致しません」とエラーが出ます。 Debug.Print TypeName(Cells(1,2).Value)で型を表示させてみるとマクロを直接実行させたときはStringですが、WSHから実行させるとErrorとなっています。 なぜWSHから実行すると型がErrorとなるのかということと、解決策を教えていただければ幸いです。 ちなみにWSHでマクロを実行させている部分は以下のとおりです。 Set objExcelApp = CreateObject("Excel.Application") Set objWbk = objExcelApp.Workbooks.Open("ExcelBook.xls",True) objExcelApp.Run("ExcelBook.xls!macro1")
- ベストアンサー
- Visual Basic
- Excel VBAのCharacters関数
Range("b43").Characters(5, 10).Font.bold = True と入れたのですが、指定のセルが全く太字になってくれません。いろいろパラメーターをいじってみたのですが、 Range("b43").Characters(1,10).Font.bold = True Range("b43").Font.bold = True の両方で、全部太字になる現象が起きました。基点が1以外ですとまったく動いてくれず、基点が1だと全部太字になってしまうようです。どのようにすれば狙った場所だけ太字にすることができるのでしょうか? セル自体にはvlookup,char(10),concatenate,if,iserrorの関数が使用されています。
- ベストアンサー
- その他MS Office製品
- ExcelマクロでRange("A1:A5,C1:C5")をCellsで書きたいのですが
マクロ初心者です。 Excelマクロでグラフを作成するときに、元データを指定する所で、 Source:=Range("A1:A5,C1:C5")とするような場合、 「A1」とかアルファベットでの番地指定ではなく、 Cellsを用いて書きたいのです。 Source:=Range("A1:A5")であれば、 Source:=Range(Cells(1, 1), Cells(5, 1))と書けばいいことは分かるのですが、範囲指定を複数にする場合が分からないのです。 よろしくお願いします。
- ベストアンサー
- Visual Basic
- WSHで、EXCELにワークシートをCSVから読み込んで追加したい。
WSHを使って、EXCELを起動して、既存のCSVファイルからデータを読み込みたいのですが、複数のCSVから読み込むなどして、同じワークブックの新しいシートにCSVから読み込んだデータを追加していきたいのですが、どうやればよいのかわかりません。 下のソースのようにしたのですが、そうすると、別のワークブックとして開いてしまうので、わからなくなってしまいました。お願いします。 set Exl=CreateObject("Excel.Application") Exl.Visible=True Exl.workbooks.add Exl.workbooks.OpenText "c:\data.csv"
- ベストアンサー
- オフィス系ソフト
- EXCELのVBAでRange("A1:C4")を変数にする方法を教え
EXCELのVBAでRange("A1:C4")を変数にする方法を教えて下さい。 Sub Sample1() Range("A1:C4").Borders.LineStyle = True End Sub 上のマクロの"A1:C4"を変数にして成立させるにはどのように設定すればいいのでしょうか? 以下の方法ではエラーになってしまうので、宜しくお願いします。 Sub Sample1() HENSU = Chr(34) & "A1" & ":" & "C4" & Chr(34) Range(HENSU).Borders.LineStyle = True End Sub
- ベストアンサー
- Visual Basic
お礼
ありがとうございました。ご指示どおりにやってみると、出来ました。