![見出し画像](https://assets.st-note.com/production/uploads/images/33790871/rectangle_large_type_2_1894b2557f44a1321982de4aacb2ee4c.jpg?width=800)
GASを勉強してみよう
スプレッドシートでCSVファイルを読み込んで必要な列だけ抽出したい
というお話をいただいて。
エクセルなら難なくできるんだけど(今働いてる職場でもそんな感じの作った)スプレッドシートはGASという言語なので、VBAとは全く別の文法。
全くってわけではないか。
英語と日本語ほどは違わない。韓国語と日本語くらいの違いです。
英語よりは文法が似てて、単語が違うってイメージですね。(英語と韓国語と日本語がどれも中途半端なトリリンガル笑)
まずはGASのコードの書き方から。まじで何もわからないのでイチからやりました。
参考にさせていただいたサイトはこちら。多謝!
んで2時間の成果がこれ。
function myCopyFunction() {
//スプレッドシートの名前、シート名を取得
const ss = SpreadsheetApp.getActiveSpreadsheet();
const sheet1=ss.getSheetByName('元データ');
const sheet2=ss.getSheetByName('抽出シート');
//元データシートの最終行を取得
const LastRow1 = sheet1.getLastRow()
//タイトルを抜かして2行目から最終行までループ
for(var i=2;i<=LastRow1;i++)
{
//元データシートのB列の文字がイチローだったらその行を転記
if(sheet1.getRange(i,2).getValue() == "イチロー"){
//抽出シートの最終行を取得
var LastRow2 = sheet2.getLastRow()
//1~3列目までが転記対象
for(var j=1;j<=3;j++)
{
//元データシートの1~3列目のデータを取得して
var copyValue=sheet1.getRange(i,j).getValue();
//抽出シートに貼り付け(最終行+1行目に)
sheet2.getRange(LastRow2+1,j).setValue(copyValue);
}
}
}
}
B列に特定の文字が入っていたらその行を転記するというコードです。
1行ずつステップ実行する方法あるのかな?
エラーコードメッセージからどういうエラーか推測つくのかな?
などなど、デバッグの仕方がまだわかっていませんが、スプレッドシートの案件もちょこちょこ見かけるのでスプレッドシートのお仕事も依頼をもらえるように、GASの習得頑張ります!
この記事が気に入ったらサポートをしてみませんか?