前提・実現したいこと
googleフォームにて半角カナ英数字指定の回答を全角に変換したいです。
そこでネットでGASコードを見つけ試しました。
ですが、引数にQUERY関数を使いたいのですが引数に関数を使えないコードのようでどのようにすればいいのかわかりません。
ご教示いただきたいです。
発生している問題・エラーメッセージ
フォーム回答の設問項目名をqueryして列の移動に耐えられるような関数を組みました。
=f7conv(query('フォームの回答 1'!$A$2:$BO,"select ("&SUBSTITUTE(ADDRESS(1,match(K1,'フォームの回答 1'!$A$1:$BO$1,0),4),1,)&")"))
エラーメッセージ TypeError: string.split is not a function(行 79)が発生しました。
該当のソースコード
function myFunction() { } //全角カタカナ一覧 var zenkata = [ "ア", "イ", "ウ", "エ", "オ", "カ", "キ", "ク", "ケ", "コ", "サ", "シ", "ス", "セ", "ソ", "タ", "チ", "ツ", "テ", "ト", "ナ", "ニ", "ヌ", "ネ", "ノ", "ハ", "ヒ", "フ", "ヘ", "ホ", "マ", "ミ", "ム", "メ", "モ", "ヤ", "ユ", "ヨ", "ラ", "リ", "ル", "レ", "ロ", "ワ", "ヲ", "ン", "ガ", "ギ", "グ", "ゲ", "ゴ", "ザ", "ジ", "ズ", "ゼ", "ゾ", "ダ", "ヂ", "ヅ", "デ", "ド", "バ", "ビ", "ブ", "ベ", "ボ", "パ", "ピ", "プ", "ペ", "ポ", "ァ", "ィ", "ゥ", "ェ", "ォ", "ャ", "ュ", "ョ", "ッ", "ヴ", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "ー", "・", "。", "、"]; //半角カタカナ一覧 var hankata = [ "ア", "イ", "ウ", "エ", "オ", "カ", "キ", "ク", "ケ", "コ", "サ", "シ", "ス", "セ", "ソ", "タ", "チ", "ツ", "テ", "ト", "ナ", "ニ", "ヌ", "ネ", "ノ", "ハ", "ヒ", "フ", "ヘ", "ホ", "マ", "ミ", "ム", "メ", "モ", "ヤ", "ユ", "ヨ", "ラ", "リ", "ル", "レ", "ロ", "ワ", "ヲ", "ン", "ガ", "ギ", "グ", "ゲ", "ゴ", "ザ", "ジ", "ズ", "ゼ", "ゾ", "ダ", "ヂ", "ヅ", "デ", "ド", "バ", "ビ", "ブ", "ベ", "ボ", "パ", "ピ", "プ", "ペ", "ポ", "ァ", "ィ", "ゥ", "ェ", "ォ", "ャ", "ュ", "ョ", "ッ", "ヴ", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "ー", "・", "。", "、"]; //関数を作成 function f7conv(string) { //最終的に返す変数を定義 var result = ''; //変換する対象文字列をセット var input = hankata; var output = zenkata; //引数で渡された文字を分割 var text = string.split(''); //文字を再格納する配列を定義 var array = []; //分割した文字の数だけループを回し、もし濁点・半濁点だった場合は1つ前の配列の中身とセットにして array に格納 for (var i = 0; i < text.length; i++) { if (text[i] == "゙" || text[i] == "゚") { array[array.length - 1] = (text[i - 1] + text[i]); } else { array.push(text[i]); } } //再格納した文字の数だけループを回し、もし半角カナがあったら全角カナに直して result へ格納 for (var j = 0; j < array.length; j++) { var index = input.indexOf(array[j]); if (index == -1) { result = result + array[j]; } else { result = result + output[index]; } } //結果を返す return result; }
補足情報
回答2件
あなたの回答
tips
プレビュー