Google スプレッドシートで「ローマ数字から 10 進数へ」関数のスクリプトを作成しようとしています。これまでのところ、以下のコードを使用して機能させることができました。
function rom2num(inputRange) {
inputRange = inputRange.replace(/\bi\b/gi,1); //convert 'I' to '1'
return inputRange;
}
これは、入力が 1 つのセルのみの場合に完全に機能します。ただし、範囲 (A1:B2) を入力しようとすると、「オブジェクト内の関数置換が見つかりません」というエラーが表示されます。
私が達成したいことのいくつかの例:
Column A | Column with function
i, ii, iii | 1, 2, 3
Godfather II | Godfather 2
iv, v, vi | 4, 5, 6
Star Wars V | Star Wars 5
クレヨンが示唆したように、下のセルで関数を繰り返すことを選択することもできますが、再フォーマットする必要がある範囲は 50 行、または 100 行である可能性があり、関数の 50 の余分なインスタンスをスローしたくない場合それらは使用されません。なるべく自動でやりたい。:-)
次のコードを使用するだけで、セル範囲の情報を取得し、別のセル範囲にその情報を返すことができることを知っています。
function copyRange(inputRange) {
return inputRange;
}
したがって、範囲を入力して同じ範囲を出力しても問題ありません。問題は、置換機能を組み込むことです。「toString()」関数を使用して、範囲全体の情報を変更することができました。そして、「split(",")」を使用して出力を複数の列に分割することができましたが、行だけでなく、列全体に広げたくありません。
したがって、範囲/配列を文字列に変換してから、範囲/配列に戻すことができれば...
コードを肥大化させずにこれを達成することは可能ですか? (私は初心者のスクリプト作成者であり、上記の例のように短いスクリプトを好みます。)
わかりにくかったらすいません。私はこのようなフォーラムで回答を探すのに慣れていますが、自分で質問することはありません!
ありがとう!
編集:最終的に物事が少し複雑になりすぎていることに気付いたので、クレヨンのアドバイスに従い、「ドラッグ」方法を使用しました。たくさんのハズレを救ってくれました。助けてくれてありがとう!!