【保存版】VBA→Office Scripts 書換チートシート

【保存版】VBA→Office Scripts 書換チートシート
目次

はじめに

VBA と Office Scripts は似ているようで全く別物です。

このチートシートでは、よく使う処理を“即書換できる形”で一覧化しています。

基本構造

VBAOffice Scripts
Sub マクロ()function main(workbook)
Sub Sample()

End Sub
function main(workbook: ExcelScript.Workbook) {

}

セル操作

値の読み書き

操作内容VBAOffice Scripts
読み込みRange(“A1”).ValuegetRange(“A1”).getValue()
書き込みRange(“A1”).Value = 1getRange(“A1”).setValue(1)
Range("A1").Value = 100
sheet.getRange("A1").setValue(100);

Cells指定

操作内容VBAOffice Scripts
A1セルの指定Cells(1,1)getCell(0,0)

👉 0始まりに注意

範囲操作

範囲取得

操作内容VBAOffice Scripts
セル範囲の指定Range(“A1:B5”)getRange(“A1:B5”)

行・列

操作内容VBAOffice Scripts
1行目を指定Rows(1)getRange(“1:1”)
1列目を指定Columns(1)getRange(“A:A”)

シート操作

操作内容VBAOffice Scripts
シート指定Worksheets(“Sheet1”)getWorksheet(“Sheet1”)
アクティブシートActiveSheetgetActiveWorksheet()
Worksheets("Sheet1").Range("A1").Value = 1
let sheet = workbook.getWorksheet("Sheet1");
sheet.getRange("A1").setValue(1);

ループ処理

操作内容VBAOffice Scripts
10回のループ処理For i = 1 To 10for (let i = 0; i < 10; i++)
For i = 1 To 3
  Cells(i,1).Value = i
Next i
for (let i = 0; i < 3; i++) {
  sheet.getCell(i,0).setValue(i+1);
}

条件分岐

操作内容VBAOffice Scripts
IF文による分岐処理If ~ Thenif ( )
If Range("A1").Value > 10 Then
  MsgBox "OK"
End If
if (sheet.getRange("A1").getValue() > 10) {
  console.log("OK");
}

最終行の取得

Dim lastRow As Long
lastRow = Cells(Rows.Count,1).End(xlUp).Row
let lastRow = sheet.getUsedRange().getLastRow().getRowIndex();

👉 Office ScriptsはUsedRangeベース

書式設定

操作内容VBAOffice Scripts
文字書体を「太字」にするFont.Bold = TruegetFormat().getFont().setBold(true)
Range("A1").Font.Bold = True
sheet.getRange("A1").getFormat().getFont().setBold(true);

クリア処理

操作内容VBAOffice Scripts
A1セルをクリアRange(“A1”).Clearclear()
Range("A1").Clear
sheet.getRange("A1").clear();

配列処理(重要)

VBA

Dim data
data = Range("A1:B2").Value

Office Scripts

let data = sheet.getRange("A1:B2").getValues();

👉 配列は2次元配列

NGパターン(重要)

Select / Activate(使えない)

Range("A1").Select
Selection.Value = 1

👇

sheet.getRange("A1").setValue(1);

よく使う置き換えまとめ

VBAOffice Scripts
ValuegetValue / setValue
CellsgetCell
RangegetRange
WorksheetsgetWorksheet
ActiveSheetgetActiveWorksheet
MsgBoxconsole.log

対応できない主な機能

機能可否
UserForm
ファイル操作
API通信◎(fetch)

おわりに (まとめ)

まとめ

このチートシートはよく使う処理「書き換えのヒント集」です。

  • VBAは 1 始まり → Office Scriptsは 0 始まり
  • Selectは不要
  • Workbookから操作する構造になる

より高度な自動化を行う場合は、Power Automate との連携も検討すると効果的です。

次回は、生成AIを利用して既存VBAコードを書き換えてみたいと思います。

この記事が、少しでも誰かのお役に立てれば幸いです。

当サイトの記事で使用したVBAなどのサンプルをDLできます

この記事のサンプルはありません!

ダウンロードページへは下のカードをクリックすればジャンプできます。
よろしければご利用ください!

よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

プロフィール画像は愛犬「くるみ」
ブログ名の「くるみこ」kurumico.comはここからつけました。
このブログをとおして、自分の経験から少しでも皆さまのお役に立てる情報が発信できればと思い立ち上げました。VBAは独学ですが、過去にはVBでフリーソフトを作っていた経験と仕事でExcelVBAを酷使している中での気づきなどを発信していきます。

目次