いつもお世話になります
Excelのマクロに、別のbookのシートにマクロ挿入する機能があります
例題として
With wb.VBProject.VBComponents.Item("ThisWorkbook").CodeModule
.InsertLines 1, "Private Sub Workbook_BeforeClose(Cancel As Boolean)"
.InsertLines 2, ""
.InsertLines 3, "Dim Fname As String"
.InsertLines 4, "Dim check As Long"
.InsertLines 5, ""
.InsertLines 6, " Sheets(""" + Sname(4) + """).Activate"
.InsertLines 7, " On Error GoTo 1234"
.InsertLines 8, " ActiveSheet.Shapes.Range(Array(""図 1"")).Select"
.InsertLines 9, " Selection.Cut"
.InsertLines 10, " ActiveSheet.Shapes.Range(Array(""TextBox 2"")).Select"
.InsertLines 11, " Selection.Cut"
.InsertLines 12, "1234:"
.InsertLines 13, " On Error GoTo 0"
.InsertLines 14, ""
略
.InsertLines 27, " Application.DisplayAlerts = False"
.InsertLines 28, " Aapplication.Quit"
.InsertLines 29, " End If"
.InsertLines 30, ""
.InsertLines 31, "End Sub"
End With
jscript でも同じようなことは出来る機能はあるのでしょうか?
あれば、新規excelのModuleにマクロをinsertして実行させてみたいのですが
以上、よろしくお願い申し上げます
No.2ベストアンサー
- 回答日時:
私は、JavaScript の知識が乏しいので、最初に、VBScriptを作ってから、やってみました。
単に記法の問題だけなのでした。ウィルスもどきですから、私の環境では許されても、他の方の環境では許されないかもしれません。絶対的に必要な部分だけを書いておきます。これが、できない場合は、PC環境のせいであり、セキュリティ設定の違いです。
// JavaScript Document
var xlapp = new ActiveXObject("Excel.Application");
xlapp.visible =true;
var newbk = xlapp.workbooks.add();
newbk.vbproject.references.addfromguid("{0002E157-0000-0000-C000-000000000046}",5,3);
var e =newbk.vbproject.vbcomponents("ThisWorkbook").codemodule;
e.insertlines(1, "Private Sub Workbook_BeforeClose(Cancel As Boolean)");
e.insertlines(2, "End sub");
//
>今回若い技術者に教えられてJScriptを始めてみましたが、VBScriptも必要かもしれませんね
JScript とは本来使用目的が違うだろうけれども、覚えればなんとかなるのかもしれません。ドイツのエディタの会社では、VBScript 系は手放し-フリーにしてしまいました。
今、Excel 2013には、オフライン・ヘルプがないとか、VBAには、暗い影のようなものを落とし始めましたが、そこで、最近は、私も、JavaScript はなんとかしようとは思っているのですが……。PowerShell が進み始めています。
>今はエクスポートしたVBAを、インポートする方法を模索しています
別のカテで出ているのは確認しました。たぶん、できるだろうと思いますが、あえて、JavaScript で書くというのも気が進まなかったりします。VBScript のほうがはるかに違和感が少ないです。
すみません、夏休みで出かけていてお礼が遅くなりました
何か何までご親切に本当に感謝します
これからの開発の力になります
また、よろしくお願いします
No.1
- 回答日時:
このご質問については、たぶんできるような気がします。
昨日から手をつけましたが、なぜか、うまくできない原因が分かりません。>新規excelのModuleにマクロをinsertして実行させてみたいのですが
できてもいない人間がおこがましいのですが、多少の助言をしますと、それは、分かっているとは思いますが、やっているのはマクロ・ウィルスです。悪意を持てばマルウェアに変身します。そのマクロ・ウィルスの名でインターネット検索すれば、いずれはヒットするだろうと思います。
だから、コードの公開は、その性質上問題があるかもしれません。実務上は、そのようなことはしないで、テンプレートを呼び出すだけのほうが良いと思います。
>jscript でも同じようなことは出来る機能はあるのでしょうか?
インターフェイスの問題ですから、javascript自体は関係ないはずです。
今回は、それを実行するために、Microsoft Visual Basic for Application Extensibility を参照設定をしなくてはならないということです。これだけ言えば、わかる人はわかると思います。
------
なお、前回のVBカテ側の方は消えてしまったようですが、読んでいました。
あちらは、たった一点変な部分があっただけで、ほかは問題があるようには思えませんでした。JavaScript に詳しい人は、VB系には少ないので、やはり掲示板の反応が鈍いかもしれません。
FilePath(AAA)
たぶん、この部分でしょう。
それを、var fn = book1.Path();
とでもすればよいかと思いました。
JavaScript で書くよりも、機能は落ちますが、VBScriptで書くほうがずっと楽だと、私は思います。
すみません、お手数をおかけしました
本当にありがとうございます
やはりVBScriptですか
今はエクスポートしたVBAを、インポートする方法を模索しています
こちらもまだ解決していませんが、またご教授願えれば幸いです
自分自身、Fortran,VB,VBAと経験は長いのですが、今回若い技術者に
教えられてJScriptを始めてみましたが、VBScriptも必要かもしれませんね
本当にご返事に感謝しています
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- Excel(エクセル) 2つのVBAを一緒にしたら機能しなくなりました(エクセル) 7 2022/06/02 12:41
- Visual Basic(VBA) 【追加】ファイルを閉じてダイアログで保存した時だけ処理の実行をする 3 2022/03/23 15:43
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/10/13 08:41
- Visual Basic(VBA) Excel VBAの解読について質問があります。 概要は、マクロでチェックボックスにチェックすると日 1 2023/02/10 07:50
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/06/04 09:39
- Visual Basic(VBA) VBAでoutlook365が起動しません。 4 2022/08/25 13:31
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/03/08 09:08
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/03/07 14:05
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ローマ字→カタカナへ変換(エク...
-
Excel VBA のdebug(F8キー) が...
-
エラーになってないのにVBA...
-
複数ファイルにある特定のシー...
-
マクロ 実行ボタンを押さずに...
-
【Excel VBA】エラー番号400
-
EXCELのセルへ、デジタル時計を...
-
Excelを開いた時に表示さ...
-
Excel文字列中の太字(Bold)部分...
-
エクセルで複数のシートをまと...
-
EXCEL2000 VBA マクロ実行中に...
-
GetAsyncKeyState(32) の動作が...
-
Excelのワークシート上に検索窓...
-
マクロ ブックをマクロなしでコ...
-
VBAが止まらない
-
エクセル グラフの軸の最小値最...
-
エクセルのマクロでワードのマ...
-
Excelマクロでオプションボタン...
-
マクロ実行後元に戻すことは
-
ワードからエクセルへ貼り付け...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ローマ字→カタカナへ変換(エク...
-
複数ファイルにある特定のシー...
-
マクロ 実行ボタンを押さずに...
-
EXCELのセルへ、デジタル時計を...
-
Excelを開いた時に表示さ...
-
エラーになってないのにVBA...
-
Excel VBA のdebug(F8キー) が...
-
ワードからエクセルへ貼り付け...
-
エクセルのマクロ機能で前のシ...
-
Excelのワークシート上に検索窓...
-
モジュール内のマクロを全て実...
-
エクセル グラフの軸の最小値最...
-
EXCEL 複数のシートの同一の位...
-
エクセルで複数のシートをまと...
-
【Excel VBA】エラー番号400
-
Excelマクロでオプションボタン...
-
Wordの画面を左右にスクロール...
-
マクロ ブックをマクロなしでコ...
-
Wordで「原稿用紙○枚」を換算す...
-
AccessのテーブルデータをExcel...
おすすめ情報