• ベストアンサー

Googleスプレットシートについて

Googleスプレッドシートを使って 横並びシート1~5の中に新規で入力しようとしてる文字列が既に入力済みになっていないか 確認する方法をおしえて下さい 以前はエクセルを使って入力規制とか マクロとか使ってました が 今回はじめてスプレットシートなるモノを使い始めて困惑しております

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.1

小生はGoogleのSpredSheetのマクロは使ったことはありません。 しかし、本件はマクロでないと処理できないことは確実でしょう。 (エクセルの入力規則なども複数シートを対象にでは使えないでしょう) エクセルVBAでやってみると、下記のようなコードでしょう。(参考) Sheet1(入力するシート)として、 その他のシートは、「その文字列が、存在するかどうか」を検索するシート「だけ」とする。 Private Sub Worksheet_Change(ByVal Target As Range) w = Target For Each sht In Worksheets 'Set f = Worksheets(Sht).Range("a1:h100").Find(w) If sht.Name <> "Sheet1" Then Set f = sht.Cells.Find(w) If f Is Nothing Then Else MsgBox "すでにあります" & sht.Name & f.Address End If End If Next End Sub 処理ロジックはこんなものでしょう。 これがGoogleスプレットシートでもできるか勉強されたら。 上記はいろいろな操作(入力取り消しや同じ値の入力など)への防御(チェック)は含めていません。 ーー 組み替える荷は、 まずJavaScriptの書き方を多少勉強する。 (繰り返し(ForEach)や文法など中心に) 「Google Apps Script」 でGoogle検索して (今(2015年)では、たくさんの記事がWEBで出てくる) ・CHANGE EVENTがあるか?あればどう使うか ・Findメソッドはあるか?あればどうするか ・For Eachなど使ってあるシートの捉え方 (以下は、すべてのシートや、セルについて、繰り返すのでなく、コード行数を少なく済ますために、検討するとよいと思うもの) http://engineer-intern.jp/archives/7697 参考 For Eachは無いようだ ・全シートを対象にするとらえかた ・1シートのセルすべてを対象にするコード マクロを書く場所など、マクロの作り方、使い方を最小限。

sakaizeki
質問者

お礼

フムフムなるほど 丁寧な文章ありがとうございます。 imogasiの解答が頂けるまでココ→http://libro.tuyano.com/index2?id=638001 で勉強しておりました。 色々ヒントを頂いたので試行錯誤してみます。 調べて思ったのですが、Gスプレットはサーバー上で動く故、今までは出来なかった色々な面白い事が出来そうですねぇ 勉強します、お返事ありがとうです。

sakaizeki
質問者

補足

境関です、一番に回答して頂いた所申し訳ありませんが。もっと他の人の回答も見てみたいと考えていますのでベストアンサーボタンはまだ押さずにおいています。

関連するQ&A