重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

Excelマクロで使用しているVBAコードをスプレッドシートのGoogle Apps Scriptに変換していただきたいです。

Sub 前半予定()

Dim 列 As Long
Dim 元 As Long
Dim 終 As Long
Dim 先 As Long
Sheets("(予定15)").Cells.ClearContents
Sheets("(使用しない1)").Select
Range(Cells(1, 1), Cells(1, 12)).Copy
Sheets("(予定15)").Cells(1, 1).PasteSpecial Paste:=xlPasteValues
先 = 2
列 = 1
Do While Cells(1, 列).Value <> ""
If Cells(2, 列).Value <> "" Then
終 = 70
For 元 = 2 To 70
If Cells(元, 列).Value = "" Then
終 = 元 - 1
Exit For
End If
Next
Range(Cells(2, 列), Cells(終, 列 + 11)).Copy
Sheets("(予定15)").Cells(先, 1).PasteSpecial Paste:=xlPasteValues
先 = 先 + 終
End If
列 = 列 + 12
Loop
Application.CutCopyMode = False
Sheets("(予定15)").Select
Cells.Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlYes

Call sakujyo
Call CSV出力前半

End Sub

A 回答 (1件)

function 前半予定() {


var ss = SpreadsheetApp.getActiveSpreadsheet();
var 使用しない1 = ss.getSheetByName("(使用しない1)");
var 予定15 = ss.getSheetByName("(予定15)");

// シートの内容をクリア
予定15.clearContents();

// 1行目のコピー (A1:L1の12列分)
var headerRange = 使用しない1.getRange(1, 1, 1, 12);
headerRange.copyTo(予定15.getRange(1, 1), { contentsOnly: true });

var 列 = 1;
var 先 = 2; // 貼り付け先の行
var 最終行 = 70;

// 列を12列ずつスキャン
while (使用しない1.getRange(1, 列).getValue() != "") {
if (使用しない1.getRange(2, 列).getValue() != "") {
var 終 = 最終行;

// 値がある最終行を特定
for (var 元 = 2; 元 <= 最終行; 元++) {
if (使用しない1.getRange(元, 列).getValue() == "") {
終 = 元 - 1;
break;
}
}

// データのコピー (2行目から終の行まで12列分)
var copyRange = 使用しない1.getRange(2, 列, 終 - 1, 12);
copyRange.copyTo(予定15.getRange(先, 1), { contentsOnly: true });

先 += (終 - 1); // 貼り付け先の行を更新
}
列 += 12;
}

// ソート (A2列を昇順)
var sortRange = 予定15.getRange(2, 予定15.getLastColumn());
sortRange.sort({ column: 1, ascending: true });

// sakujyo 関数を呼び出し
sakujyo();

// CSV出力前半 関数を呼び出し
CSV出力前半();
}

function sakujyo() {
Logger.log("削除処理が実行されました");
}

function CSV出力前半() {
Logger.log("CSV出力処理 (前半) が実行されました");
}
    • good
    • 1
この回答へのお礼

助かりました

すぐに教えていただきましてありがとうございます。とても感謝しております。本当にありがとうございました。こちらを元に色々検証していきたいと思います。

お礼日時:2025/02/28 12:04

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A