
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
No.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出力処理 (前半) が実行されました");
}
すぐに教えていただきましてありがとうございます。とても感謝しております。本当にありがとうございました。こちらを元に色々検証していきたいと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
質問58753 このコードでうまく動作しません。どうしたら良いですか Private Sub Wor
Visual Basic(VBA)
-
エクセルのマクロについて教えてください。
Visual Basic(VBA)
-
VBAでFOR NEXT分を Application.OnTimeを使って
Visual Basic(VBA)
-
-
4
算術演算子「¥」の意味について
Visual Basic(VBA)
-
5
ダブルクリックで貼り付けた画像からリンクのみ削除し、画像を残したい。
Visual Basic(VBA)
-
6
VBA Application.Matchについての質問です
Visual Basic(VBA)
-
7
Visualbasicの現状について教えてください
Visual Basic(VBA)
-
8
Excelのマクロについて教えてください。
Visual Basic(VBA)
-
9
VB.net 文字列から日付型へ変更したい
Visual Basic(VBA)
-
10
vbaマクロについて
Visual Basic(VBA)
-
11
VBAでユーザーフォームを指定回数繰り返して入力を行う方法
Visual Basic(VBA)
-
12
以下のプログラムの実行結果はどうなると思いますか? その理由も教えてください。
Visual Basic(VBA)
-
13
ExcelのVBAコードについて教えてください。
Visual Basic(VBA)
-
14
改行文字「vbCrLf」とは
Visual Basic(VBA)
-
15
VBAの「To」という語句について
Visual Basic(VBA)
-
16
エクセルの改行について
Visual Basic(VBA)
-
17
(EXCEL超初心者)EXCELの関数(またはマクロ)で質問です。
Visual Basic(VBA)
-
18
【マクロ】変数を使った、文字の種類の変更にて、エラーとなる。
Visual Basic(VBA)
-
19
vb.net(vs2022)のtextboxのデザイン時と実行時の見た目の違いはなぜ?
Visual Basic(VBA)
-
20
vbsでのwebフォームへの入力制限?
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
vbsでのwebフォームへの入力制限?
-
【ExcelVBA】値を変更しながら...
-
vba textboxへの入力について教...
-
複数のExcelファイルをマージす...
-
Vba セルの4辺について罫線が有...
-
【マクロ】開いているブックの...
-
VBAのエラー表示の対処法について
-
【ExcelVBA】5万行以上のデー...
-
エクセルのマクロについて教え...
-
ワードの図形にマクロを登録で...
-
EXCEL vbaでシート上に配置した...
-
Excel 範囲指定スクショについ...
-
Vba Array関数について教えてく...
-
【マクロ】シートの変数へ入れ...
-
【マクロ】並び替えの範囲が、...
-
【マクロ】売上一覧YYYYMMDDHHS...
-
エクセルの改行について
-
【マクロ】モジュール変数の記...
-
算術演算子「¥」の意味について
-
VBAのループ処理について教えて...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Vba Array関数について教えてく...
-
VBAでCOPYを繰り返すと、処理が...
-
【ExcelVBA】5万行以上のデー...
-
【マクロ】シートの変数へ入れ...
-
vbsでのwebフォームへの入力制限?
-
エクセルのマクロについて教え...
-
【マクロ】並び替えの範囲が、...
-
Vba セルの4辺について罫線が有...
-
【マクロ】売上一覧YYYYMMDDHHS...
-
VBAでユーザーフォームを指定回...
-
【マクロ】開いているブックの...
-
エクセルの改行について
-
vb.net(vs2022)のtextboxのデザ...
-
エクセルのVBAコードと数式につ...
-
算術演算子「¥」の意味について
-
Excelのマクロについて教えてく...
-
改行文字「vbCrLf」とは
-
ワードの図形にマクロを登録で...
-
VBAの「To」という語句について
-
【マクロ】変数を使った、文字...
おすすめ情報