質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

Q&A

0回答

1194閲覧

TextFinderの検索条件を任意のセルに設定したものにしたいです

310d

総合スコア0

Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

0グッド

0クリップ

投稿2021/03/09 02:00

前提・実現したいこと

GASで任意に割り当てた番号を指定して、その番号に紐付けされている情報をまとめた帳票を自動で作成するスクリプトを作成したいです。

【質問の内容】
製造現場での活用を目的としているものです。
スプレッドシートで作成したフォームに情報を記入し、
その情報をまとめたものを、『製造指示書』として同一ブック内でなく、別のフォームに出力したいと考えております。
事前情報を記入するフォームには複数種類の品目の製造情報を記入しますが、それぞれの品目に製造番号を割り振っています。
また、製造情報は同一行でまとめるようにし、複数行にならぬよう設定しております。
スプレッドシート上ではスクリプトが動いており、製造番号を指定して(製造番号を指定するセルに当該番号を打ち込み、スクリプトを割り振った図形をスクリプト開始ボタンとして設定しています)その製造番号に紐付けされた『製造指示書』を発行できるようにしたいです。

色々調べてもTextFinderに皆さん調べたいキーワードを打ち込んで設定しているのですが、
それを任意のセルに打ち込んだ情報を反映できるようにしたいです。

発生している問題・エラーメッセージ

特にエラーは出ておりませんが、番号を指定しても1番最初の製造番号のものの製造指示書が発行されるだけで、製造番号をしているセルの
製造番号を変更しても変化はありません。

【エラーメッセージ】
特には出ておらず、通常通り開始され、完了されてしまいます。

該当のソースコード

ソースコード:GAS(Google Apps Script)

function createReceipt2() {
var template = SpreadsheetApp.openById('******');
var sheet1 = SpreadsheetApp.getActiveSheet();

for(var i = 9; i <= 88; i++){

 //データの作成
var manufacturingcode = sheet1.getRange(i, 1).getValue() //製造No.
var companyname = sheet1.getRange(i, 2).getValue() //顧客名
var section = sheet1.getRange(i, 3).getValue() //担当課
var name = sheet1.getRange(i, 4).getValue() //担当者名
var address = sheet1.getRange(i, 5).getValue() //住所
var tel = sheet1.getRange(i, 6).getValue() //電話番号
var fax = sheet1.getRange(i, 7).getValue() //FAX
var sendfor = sheet1.getRange(i, 8).getValue() //納品先名
var sendaddress = sheet1.getRange(i, 9).getValue() //納品先住所
var sendname = sheet1.getRange(i, 10).getValue() //納品先担当者名
var sendtel = sheet1.getRange(i, 11).getValue() //担当課

var raw1 = sheet1.getRange(i, 12).getValue() //原料名①
var raw1lot = sheet1.getRange(i, 13).getValue() //原料lot①
var raw1amount = sheet1.getRange(i, 14).getValue() //原料受け入れ量①
var raw1deliverymethod = sheet1.getRange(i, 15).getValue() //原料①納品方法
var raw1acceptday = sheet1.getRange(i, 16).getValue() //原料入荷日①

var raw2 = sheet1.getRange(i, 17).getValue() //原料名②
var raw2lot = sheet1.getRange(i, 18).getValue() //原料lot②
var raw2amount = sheet1.getRange(i, 19).getValue() //原料受け入れ量②
var raw2deliverymethod = sheet1.getRange(i, 20).getValue() //原料②納品方法
var raw2acceptday = sheet1.getRange(i, 21).getValue() //原料入荷日②

var raw3 = sheet1.getRange(i, 22).getValue() //原料名③
var raw3lot = sheet1.getRange(i, 23).getValue() //原料lot③
var raw3amount = sheet1.getRange(i, 24).getValue() //原料受け入れ量③
var raw3deliverymethod = sheet1.getRange(i, 25).getValue() //原料③納品方法
var raw3acceptday = sheet1.getRange(i, 26).getValue() //原料入荷日③

var raw4 = sheet1.getRange(i, 27).getValue() //原料名④
var raw4lot = sheet1.getRange(i, 28).getValue() //原料lot④
var raw4amount = sheet1.getRange(i, 29).getValue() //原料受け入れ量④
var raw4deliverymethod = sheet1.getRange(i, 30).getValue() //原料④納品方法
var raw4acceptday = sheet1.getRange(i, 31).getValue() //原料入荷日④

var raw5 = sheet1.getRange(i, 32).getValue() //原料名⑤
var raw5lot = sheet1.getRange(i, 33).getValue() //原料lot⑤
var raw5amount = sheet1.getRange(i, 34).getValue() //原料受け入れ量⑤
var raw5deliverymethod = sheet1.getRange(i, 35).getValue() //原料⑥納品方法
var raw5acceptday = sheet1.getRange(i, 36).getValue() //原料入荷日⑥

var product1 = sheet1.getRange(i, 37).getValue() //製品名①
var product1lot = sheet1.getRange(i, 38).getValue() //製品lot①
var product1deliverymethod = sheet1.getRange(i, 39).getValue() //製品①出荷方法
var product1standard = sheet1.getRange(i, 40).getValue() //製品①規格

var product2 = sheet1.getRange(i, 41).getValue() //製品名②
var product2lot = sheet1.getRange(i, 42).getValue() //製品lot②
var product2deliverymethod = sheet1.getRange(i, 43).getValue() //製品②出荷方法
var product2standard = sheet1.getRange(i, 44).getValue() //製品②規格

var product3 = sheet1.getRange(i, 45).getValue() //製品名③
var product3lot = sheet1.getRange(i, 46).getValue() //製品lot③
var product3deliverymethod = sheet1.getRange(i, 47).getValue() //製品③出荷方法
var product3standard = sheet1.getRange(i, 48).getValue() //製品③規格

var product4 = sheet1.getRange(i, 49).getValue() //製品名④
var product4lot = sheet1.getRange(i, 50).getValue() //製品lot④
var product4deliverymethod = sheet1.getRange(i, 51).getValue() //製品④出荷方法
var product4standard = sheet1.getRange(i, 52).getValue() //製品④規格

var product5 = sheet1.getRange(i, 53).getValue() //製品名⑤
var product5lot = sheet1.getRange(i, 54).getValue() //製品lot⑤
var product5deliverymethod = sheet1.getRange(i, 55).getValue() //製品⑤出荷方法
var product5standard = sheet1.getRange(i, 56).getValue() //製品⑤規格

var manufacturingdaycode = sheet1.getRange(i, 57).getValue() //粉砕日コード
var manufacturingday = sheet1.getRange(i,58).getValue() //粉砕日
var packingday = sheet1.getRange(i, 59).getValue() //梱包日
var shipday = sheet1.getRange(i, 60).getValue() //出荷日
var machieneno = sheet1.getRange(i, 61).getValue() //粉砕機
var analysis = sheet1.getRange(i, 62).getValue() //分析方法
var wetanalysis = sheet1.getRange(i, 63).getValue() //水分分析
var otheranalysis = sheet1.getRange(i, 64).getValue() //その他分析
var notice = sheet1.getRange(i, 65).getValue() //特記事項

var range = sheet1.getRange("A9:BM");
range.sort([{column: 1, ascending: true}]);

var targetRenge = sheet1.getRange("A9:A88");
targetRenge.activate();
var finder = targetRenge.createTextFinder("B4").useRegularExpression(false).matchEntireCell(true);
var ranges = finder.findAll();

//起動する雛形の名前
var ssName = ''+ manufacturingdaycode +'製造依頼書(' + companyname + ')';
var sheet = template.copy(ssName).getSheetByName('製造依頼書');

//データを転記
sheet.getRange('B9').setValue(companyname);
sheet.getRange('B10').setValue(section);
sheet.getRange('B11').setValue(name);
sheet.getRange('B12').setValue(address);
sheet.getRange('B13').setValue(tel);
sheet.getRange('B14').setValue(fax);
sheet.getRange('B16').setValue(sendfor);
sheet.getRange('B17').setValue(sendaddress);
sheet.getRange('B18').setValue(sendname);
sheet.getRange('B19').setValue(sendtel);

sheet.getRange('B22').setValue(raw1);
sheet.getRange('D22').setValue(raw1lot);
sheet.getRange('F22').setValue(raw1amount);
sheet.getRange('I22').setValue(raw1deliverymethod);
sheet.getRange('K22').setValue(raw1acceptday);

sheet.getRange('B23').setValue(raw2);
sheet.getRange('D23').setValue(raw2lot);
sheet.getRange('F23').setValue(raw2amount);
sheet.getRange('I23').setValue(raw2deliverymethod);
sheet.getRange('K23').setValue(raw2acceptday);

sheet.getRange('B24').setValue(raw3);
sheet.getRange('D24').setValue(raw3lot);
sheet.getRange('F24').setValue(raw3amount);
sheet.getRange('I24').setValue(raw3deliverymethod);
sheet.getRange('K24').setValue(raw3acceptday);

sheet.getRange('B25').setValue(raw4);
sheet.getRange('D25').setValue(raw4lot);
sheet.getRange('F25').setValue(raw4amount);
sheet.getRange('I25').setValue(raw4deliverymethod);
sheet.getRange('K25').setValue(raw4acceptday);

sheet.getRange('B26').setValue(raw5);
sheet.getRange('D26').setValue(raw5lot);
sheet.getRange('F26').setValue(raw5amount);
sheet.getRange('I26').setValue(raw5deliverymethod);
sheet.getRange('K26').setValue(raw5acceptday);

sheet.getRange('B29').setValue(product1);
sheet.getRange('D29').setValue(product1lot);
sheet.getRange('F29').setValue(product1deliverymethod);
sheet.getRange('H29').setValue(product1standard);

sheet.getRange('B30').setValue(product2);
sheet.getRange('D30').setValue(product2lot);
sheet.getRange('F30').setValue(product2deliverymethod);
sheet.getRange('H30').setValue(product2standard);

sheet.getRange('B31').setValue(product3);
sheet.getRange('D31').setValue(product3lot);
sheet.getRange('F31').setValue(product3deliverymethod);
sheet.getRange('H31').setValue(product3standard);

sheet.getRange('B32').setValue(product4);
sheet.getRange('D32').setValue(product4lot);
sheet.getRange('F32').setValue(product4deliverymethod);
sheet.getRange('H32').setValue(product4standard);

sheet.getRange('B33').setValue(product5);
sheet.getRange('D33').setValue(product5lot);
sheet.getRange('F33').setValue(product5deliverymethod);
sheet.getRange('H33').setValue(product5standard);

sheet.getRange('B35').setValue(manufacturingday);
sheet.getRange('B36').setValue(packingday);
sheet.getRange('B37').setValue(shipday);
sheet.getRange('B38').setValue(machieneno);

sheet.getRange('B40').setValue(analysis);
sheet.getRange('B41').setValue(wetanalysis);
sheet.getRange('B42').setValue(otheranalysis);

sheet.getRange('A45').setValue(notice);
}

}

試したこと

TextFinderの記載箇所(行)を替えたり、繰り返しのforを使ったり迷走しています。
ただ、TextFinderを外すと、forの繰り返しが走るため、88枚の製造指示書が一気に発行されてしまします。

補足情報(FW/ツールのバージョンなど)

・GAS(Google Apps Script)
・スプレッドシート

全くの初心者の質問で申し訳有りませんが、ご教授いただけますと幸甚です。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問