• 締切済み

Excelでセルの機能付与について質問です

見てくださってありがとうございます. 早速質問ですが,Excelで表を作成した際に,ひとつのセルにクリックするたびに内容が変わる機能をつけたいのですが,どのようにすれば良いかわかりません.どなたか教えてください.よろしくお願いします. イメージとしまして,クリックするたびにセルに書かれている内容が[小→中→大→小]の様にループさせたいです.因みにExcel2007です.

  • jega
  • お礼率25% (11/44)

みんなの回答

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.5

No.1・3です。 >右クリックの動作を追加する(右クリックは逆の動作を考えています)場合どのようにすればいいのでしょうか. については前回のVBE画面に ↓のコードを追加してみてください。 Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) 'この行から If Application.Intersect(Target, Range("A1:A10")) Is Nothing Then Exit Sub Cancel = True With Target Select Case .Value Case "大" .Value = "中" Case "中" .Value = "小" Case Else .Value = "大" End Select End With End Sub 'この行まで これで右クリックで 大 → 中 → 小 → 大・・・ と繰り返されるはずです。 >今回このエクセルを扱うのはパソコンが苦手な友人なので,ダブルクリックではなく,クリックで行いたいのと に関してですが、 ↓のコードにすれば選択(クリック)しただけでの変更は可能です。 Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Application.Intersect(Target, Range("A1:A10")) Is Nothing Or Target.Count <> 1 Then Exit Sub With Target Select Case .Value Case "小" .Value = "中" Case "中" .Value = "大" Case Else .Value = "小" End Select End With End Sub ただし、これは文字通り「SelectionChange」イベントですので セル選択が変わった時に実行されるマクロとなります。 すなわち別セルを選択した状態で元のセルを選択する必要があります。 おそらくお望みとしてはセル移動せずに クリック で 小 → 中 → 大 右クリックで 大 → 中 → 小 といった動きだと思いますが、 シングルクリックだけでは難しいように思われます。 たとえ >今回このエクセルを扱うのはパソコンが苦手な友人なので といってもPCを使おうか!という人であれば「ダブルクリック」くらいは問題ないと思いますので、 前回の「ダブルクリック」のコードを今回の「右クリック」のコードを併用してもらってはどうでしょうか? その方がセルの移動なしで可能ですのでこの方法をオススメしたいのですが・・・m(_ _)m

  • banzaiA
  • ベストアンサー率16% (100/595)
回答No.4

>書かれている内容が[小→中→大→小]の様に とは、先の回答者さんのように[小→中→大→小]を表示させることですか? それとも、例えば、A1のセルに「会社」と入力されていて、 A1セルをクリックするたびに、 「会社」の表示を(フォントのポイントを)、「小さいフォントポイント」から「標準フォントポイント」そして「大きいフォントポイント」というふうに 表示させたい ということですか?

jega
質問者

補足

解答ありがとうございます. 言葉足らずですみません. 先の回答者さんの内容であっています.今回自分が作成したいのは,クリックする事に表示しているセルの内容が○が表示されていたら△へと言ったような事をしたいんです. わかりにくいかもしれませんが,例:「○―クリック→△―クリック→×―クリック→○―以降ループ→」 といった感じっです.すみませんがよろしくお願いします.

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.3

No.1です! たびたびごめんなさい。 余計なコードがたくさんありました。 ↓のコードに変更してください。 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 'この行から If Application.Intersect(Target, Range("A1:A10")) Is Nothing Then Exit Sub Cancel = True With Target Select Case .Value Case "小" .Value = "中" Case "中" .Value = "大" Case Else .Value = "小" End Select End With End Sub 'この行まで ※ ダブルクリックでの操作ですので、必要でないものがかなりありました。 何度もごめんなさいね。m(_ _)m

jega
質問者

補足

返事が遅くなり申し訳ありません. 回答と素晴らしいコードありがとうございます. ですが申し訳ないですが,要望があります. 今回このエクセルを扱うのはパソコンが苦手な友人なので,ダブルクリックではなく,クリックで行いたいのと,この記述に,右クリックの動作を追加する(右クリックは逆の動作を考えています)場合どのようにすればいいのでしょうか. 注文ばかりですみませんが,ご教授下さい.よろしくお願いします.

  • tsubuyuki
  • ベストアンサー率45% (699/1545)
回答No.2

エクセルには 「セルをクリックすると内容が変わる」 という不便な機能はありませんので、 この機能が欲しいと思ったらVBAを使って自作する必要があります。 ですが、VBAの起動タイミングとして用意されているのは あるセルをクリックしたら、で考えると ・ダブルクリックしたら ・右クリックしたら ・フォーカスが移動したら 主にこの三つです。 例えば「A1をクリックしたら」としたい場合、 ・A1セルをダブルクリックしたら ・A1セルを右クリックしたら ・他のセルからA1セルにフォーカスを移したら と言うことです。 で、これをごく簡単に書いてみると Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)     If Target.Address = "$A$1" Then         Select Case Target             Case "小"                 Target = "中"             Case "中"                 Target = "大"             Case "大"                 Target = "小"             Case Else                 Exit Sub         End Select     Else         Exit Sub     End If End Sub 以上、ダブルクリックの場合。 右クリックに反応させるなら、1行目を   Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) 移動時なら1行目を   Private Sub Worksheet_SelectionChange(ByVal Target As Range) に書き換え、シートモジュールに用意してやればOKです。 試してみるとご理解いただけると思いますが、 「連続操作が出来ない」点でどちらにしても不便だと思います。 (好みですので「思います」と表現しています。) ここから先は私の好みの話ですが、 私なら「ボタンあるいは四角形をクリックしたらセルを書き換える」として 例えば四角形をセル内の邪魔にならないところに配置し、 Sub 正方形長方形1_Click()     Select Case Range("A1")         Case "小"             Range("A1") = "中"         Case "中"             Range("A1") = "大"         Case "大"             Range("A1") = "小"         Case Else             Exit Sub     End Select End Sub これを仕込みます。 以上、参考までに。 ※VBA(及びVBE)の使い方は別途お調べください。

jega
質問者

お礼

回答ありがとうございます. 細かくわかりやすく説明していただきありがとうございます. かなり参考になりました.今後も参考にさせてもらいます.

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.1

こんにちは! 一例です。 (1)ひとつのセルにクリックするたびに・・・ とすると、間違ったセルを選択しても反応してしまいますので、 ダブルクリックとしてみました。 (2)対象セル範囲が判らないので、とりあえずA1~A10セルだけが反応するようにしています。 画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面に ↓のコードをコピー&ペーストしてA1~A10セルをダブルクリックしてみてください。 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 'この行から If Application.Intersect(Target, Range("A1:A10")) Is Nothing Or Target.Count <> 1 Then Exit Sub Cancel = True Application.EnableEvents = False With Target Select Case .Value Case "小" .Value = "中" Case "中" .Value = "大" Case Else .Value = "小" End Select End With Application.EnableEvents = True End Sub 'この行まで ※ セル範囲は実際の配置に合わせて適宜変更してください。 (コード内の「Range("A1:A10")」部分です) ※ 空白にする選択肢があっても良いと思いますが、 とりあえずはご質問通りにやってみました。m(_ _)m

関連するQ&A

  • エクセルのセルをクリックしたいんですけど・・・・

    エクセルのセルをクリックしたいんですけど・・・・ といいますのは図形をクリックして「マクロの記録」でいろいろやるのは覚えたんですけど、直接セルをクリックしてできますか? 実はトーナメント表を作成しているんです(甲子園の) 勝利校をクリックしたらその高校が2回戦のセルに・・・という具合に。 それと、図形ではやっては見たんですけどキャンセルボタンも作成しなければなりませんでした。キャンセルする際、そこのセルに移動してBSボタンを押せばいいのですがキーボードを使わずにマウス操作だけでやろうとするとやっぱりキャンセルボタンも作成しないといけないんですかね? あまり難しいのはできませんんがどなたか教えてください。

  • Word・Excelにこんな機能ありましたっけ

    こんにちは。 自分でも調べたのですが、どうも答えを見つけられないようなので質問させていただきます。 Word2000・Excel2000に、以下のような機能はあったでしょうか。 この2つがあると、とても都合がいい作業をしているのですが… Word:複数の表を一度に選択する   (複数の表のセルの幅・高さを均一にしたい) Excel:セルの中身を画面では見えるが、印刷には出ないようにする   (セルを非表示にするのではなく、印刷した場合ブランクにしたい) 「そんなものはないです」という情報でも構いません。 よろしくお願いいたします。

  • Excel2007 セルの影

    Excel2003までは、セルに影を付けることができました。 (実際はセルと同サイズの長方形が自動的に作成されて  そこに影が付いているわけですよね。) このセルに影を付ける機能は、Excel2007ではどのように 操作すれば良いのでしょうか? 表を装飾する際によく使っていたので困っています。 よろしくお願いいたします。

  • Excelのカメラ機能を用いて,一太郎文書に貼り付けるのですが‥

    Excel2002で作成した表を,excelのカメラ機能で画像にして, 一太郎2005に貼り付けて使っています。しかし同様に,Excel2003で作成したものを貼り付けると枠線だけになってしまいます。何か設定があるのか,excelの仕様が変わったのか,分かる方いらっしゃいますか。

  • 複数のEXCELファイルの特定セルを別ファイルへコピーする

    EXCELで作った見積書のセル内容を自動的に集めて、見積り一覧表を作りたいなと考えています。 見積書は1見積り1ファイル(シートは複数ありますが1枚目のシートが対象)になっていて、 各ファイルの1枚目のシートの特定セル内容(日付、相手先、件名、金額など)を 見積り一覧表として作成したEXCELシートへ順次コピーしたく思います。 動作イメージは 1.見積り一覧表を開いてボタンを押す等してマクロを起動。 2.同一フォルダー内の自分を除く全EXCELファイルを順次開きセル内容を一覧表へコピー。 3.全てのEXCELファイルを処理したら終了・・・。 発展系として、 ・日付条件で対象EXCELファイルを絞り込む。 ・特定セルに値が入っていなかったら(関係ないEXCELファイル)スキップ。 あとは一覧表が出来た後のソートくらいでしょうか。 まずは基本的な「自動的に複数EXCELを開いて特定セル内容をコピーする」のヒントがほしく思います。 なお、自動処理対象としたいEXCEL見積りファイルは約500本ほどです。 関連情報等ご存知でしたらお教えください。 よろしくお願いいたします。

  • VBAで、あるエクセル表のセルをクリックしたら別のエクセル表が立ち上がるプログラム

    お世話になります。 あるエクセル表のセルをクリックしたら別のエクセル表が立ち上がるプログラムを作成したいと考えております。 具体的には、あるエクセル表Aはクラスの生徒の名前一覧表を表示したもので、ある生徒の名前をクリックしたら 別のExcel表Bが立ち上がって、その生徒の住所等の詳細情報が表示される。 このようなことをしたいと考えております。 VBA等のマクロを使用するのでしょうか? VBおよび、Excelは素人なので具体的にソース等や、 参考になるURL等の助言をお願いします。 以上よろしくお願いします。

  • Excelでの結合セルの検索

    エクセルファイルで作成された表のうち、結合されたセルを探す機能というのはあるのでしょうか。 ソートをかけたいのですが、どこかに結合セルがあるらしくエラーになってしまいます。 量がかなりある表のため、ひとつひとつ探して行く手間をかけるのは無理なのです… どなたかお判りになる方、よろしくお願い致します。

  • エクセルについての質問です

    エクセルで家計簿?みたいな表で、セルの一部をクリックすると、雑費、食費みたいなリストが出てきて入力せずに選択できるという表を見たことがあるのですが、これはなんという機能を使っているのでしょうか? そして、初心者の私にも出来るものなのでしょうか? どなたかご指南ください><

  • EXCELでセルの右にボタンを作成し、入力するのを楽にしたいのです!!!教えてください!

    今、仕事である表を作成しています。 そこで、これからよく使う表になるのです。 以前、使っていたものは、セルの右横に矢印(▼)ボタンがあり、その中から選択して入力できるものでした。あれはどのように作成してるのでしょうか。 たとえば、見積書の単位を入力するセルに矢印をクリックすると、個・メートル・kgなどと縦にばーっと出てくるようしたいのです!ちなみに今使用しているのはEXCEL2000です。お願いします!!!

  • エクセルでセルの入りを変えたい

    こんにちは。 会社で、EXCEL2003を使用しています。 とある上司から、「今選択しているセルの色を変えれるとすごく見やすくなるんだよなぁ。何とか出来ない?」と聞かれて困っています。 うまく説明できませんが、新規でエクセルを開いた時、セルはA1を選択していますが、そのA1だけ色を変えたいのです。もちろん、B1へ移動したら、B1のセルの色が変わり、A1は基に戻る感じです。 私的には、そんな機能無いと思いますが、ひょっとしたら「できます!!」なんて情報があるかもしれないので、質問してみました。 因みに、OSはWinXPです。 よろしくお願いします。

専門家に質問してみよう