プロが教える店舗&オフィスのセキュリティ対策術

お世話になります。

エクセルのworkbookモジュールにある以下のマクロをグーグルスプレットシートのスクリプトに記載したいのですが、
どこにどんな記載をすればよいでしょうか。

Private Sub Workbook_Open()
Dim sht As Worksheet, rng As Range

Const shtName = "summary" '←集計用のシート名
Const startPos = "B2" '←シート名書出しスタートセル位置

Set rng = Worksheets(shtName).Range(startPos)
Intersect(Worksheets(shtName).UsedRange, rng.EntireColumn).Offset(rng.Row - 1).ClearContents
For Each sht In Worksheets
If sht.Name <> shtName Then
rng.Value = sht.Name
Set rng = rng.Offset(1)
End If
Next
End Sub

ここまで


私自身VBAの知識はなく、シート名を自動で取得したいということで、以下マクロをこちらで教えていただきました。(https://oshiete.goo.ne.jp/qa/10600590.html
エクセルでは無事動きました。


以下やってみたこと。

スプレットシートのスクリプトエディタは見つけて、適当にマクロを記録して(以下)function name() から};までを消して上記をコピペしてみましたが、エラーとなりました。

/** @OnlyCurrentDoc */

function name() {
var spreadsheet = SpreadsheetApp.getActive();
spreadsheet.getRange('L12').activate();
spreadsheet.setActiveSheet(spreadsheet.getSheetByName('1'), true);
spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Summary'), true);
spreadsheet.getRange('K1').activate()
.setValue('1');
};


どうぞよろしくお願いいたします。

A 回答 (2件)

これを動くようにするには、元のVBAの内容を理解し、それと同じ動きをするApp Scriptを作成しなければなりません。

すなわち、VBAの知識とApp Scriptの知識の両方が必要となるわけですね。とは言え両方に精通していなくても、どちらか一方をある程度理解していれば何とかなるとは思いますが、それにしてもマクロの知識がない人にこのハードルは非常に高いです。
    • good
    • 0
この回答へのお礼

コメントありがとうございます・・

お礼日時:2018/07/21 10:52

言語が違うから、そのまま貼り付けでは絶対動きません。

ExcelのマクロはVBAだけど、GoogleスプレッドシートのマクロはApp Scriptです。全くの別物。
    • good
    • 2
この回答へのお礼

ありがとう

ありがとうございます!そうなんですか。全然知りませんでした!!こまったなぁ・・

お礼日時:2018/07/20 20:34

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!