[[20090515221916]] 『飛び飛びになっているCellを選択 マクロ』(PP) >>BOT

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『飛び飛びになっているCellを選択 マクロ』(PP)

お世話になります。

飛び飛びになっているCellを選択する時に

Controlを押しながらCellを選択しますが、

これをUserformのCommandbuttonで

出来ないでしょうか?

例えば、Commandbuttonを押すと

飛び飛びになっているCellを次々と選択が出来る。

また、もっと良い方法がマクロで出来れば

教えて下さい。宜しくお願い致します。

XP 2003 


 投稿された内容からは、はっきりとした仕様がわかりません。
 が、ユーザーフォームを表示した状態(モーダルモード)でセルを選択させるには、
 RefEditコントロールを使うか ApplicationオブジェクトのInputboxメソッドを使うと可能です。
 が、Refeditには、いくつか問題があるそうなので

http://www.h3.dion.ne.jp/~sakatsu/Excel_Tips08.htm

 私は、ApplicationオブジェクトのInputboxメソッドを使うことが多いです。
 その際は、Ctrlキー押しながらセルを選択すると、飛び飛びのセルの選択が可能です。

 それともCommandbuttonを押すとアクティブセルから決まった規則(例えば行方向にひとつ置きに選択)で
 飛び飛びになっているCellを次々と選択する仕様ならUnionメソッドを使うのが有効な方法です。

 詳しい仕様が必要です。

 ichinose


ichinoseさん アドバイス有り難うございます。

単純な足し算なのですが、毎回、選択範囲(選択列は同じなのですが、Cellの選択に規則性が無い)が

変わり、大変なので何か良い方法があればと、思いました。


 PPさんは、どのセルが足し算するセルで
 どのセルを足し算しないセルなのか は
 どうやって見分けているのですか?

 例えば、
  ・別の列に××が含まれている行
  ・○○と入っている行の△行下
  ・セルに色が付けてある
  ・セルの値が◇◇以上
 等

 その作業を他の人にやってもらおうと思ったら
 どの様な説明をすれば 今日も、明日も、あさっても
 やってもらえますか?

 その説明をしてみられてはどうでしょう?

 (HANA)

HANAさん アドバイス有り難うございます。

Sheet枚数が月の日付の枚数分有り、一つSheetに同じ書式が、

30ページあります。

1ページ目は、みかん&りんごの値を計算

2ページ目は、ほうれん草&こんにゃく&なし

3ページ目・・・・

次の日は、隣のSheetに移る

セルに色等、規則性が無く、上司の言った項目に従い 毎回、違います。

項目数も300位有り、これからも増えます。

地道にCtrlキー押しながら、やります。

有り難うございました。

 


 う〜ん、もっと分かるように説明して頂ければ
 少しでも省力化は出来そうには思いますが。

 関数を使って 計算支援なり
 マクロを使って一発合計 なり・・・。

 【分かるように説明して頂ければ】ってのが
 大前提に成ってしまいますが・・・。

 例えば
 >上司の言った項目
 ってのは、どこに有るのか?
  とか
 それはどの様に伝えられるのか?
  とか・・・。

 >一つSheetに同じ書式が、30ページあります。
 このページの区切りも重要そうですね。
 例えば、30行毎に成っている とか
 前のページが終わったら、改ページが入って次のページ とか・・・?

 >選択範囲(選択列は同じなのですが、Cellの選択に規則性が無い)が変わり
 選択列が同じ と言う事は、有る程度リストの形に
 成っているのではないかと想像されます。

 SUMIF関数,SUMPRODUCT関数,データベース関数
 串刺し計算,統合機能,ピボットテーブル
 など、エクセルには集計するための色々なツールが有りますよ。

 >地道にCtrlキー押しながら、やります。 
 最初のご質問だと、「Ctrlキーを押す左手が疲れない」
 と言うだけで、右手はやはり地道な選択が必要なのですよね??

 それとも、もっと違った何かを望んで居られたのですかね?

 (HANA)

 マクロでの例です。

 標準モジュールに
 −−−−−−−−−−−−−−−−−−−−−−−−−
 Public selectCell As Range
 Public selectCellMode As Boolean

 Sub StartSelect()
    selectCellMode = True
    Set selectCell = Selection
 End Sub

 Sub endSelect()
    selectCellMode = False
    selectCell.Select
 End Sub
 −−−−−−−−−−−−−−−−−−−−−−−−−

 ThisWorkbook に
 −−−−−−−−−−−−−−−−−−−−−−−−−
 Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
    If selectCellMode = True Then
        Set selectCell = Union(Target, selectCell)
        selectCell.Select
        Cancel = True
    End If
 End Sub
 −−−−−−−−−−−−−−−−−−−−−−−−−
 をおきます。

 上の二つのプロシージャにはあらかじめマクロのオプションからショートカットを
 割り当てておくとよいでしょう。

 StartSelect を実行すると、EndSelect を実行するまで、右クリックで選択したセル
 を追加していきます。

 プロシージャの中の一部として、上記を利用すればマクロをそれぞれ実行しなくとも
 その間だけ選択が追加選択が可能だと思います。
 (Mook)

 最初の質問を読んだだけで回答したので、的外れな回答になってしまっていますね。
 失礼しました。

 HANAさんの言われるように、本当にしたいことを説明したほうが良いと思います。
 私も、CTLを押さないで選択するのが最適な解とは思えません。

 「どう条件を指定するか」をうまく説明できれば、選択するする必要がなくなると
 思いますよ。
 (Mook)

 もしかして
 Ctrlキーを押しながら選択すると 一つ間違えると
 もう一度、最初からやり直しだが

 コマンドボタンを押している間は、
 続けて複数選択できるし
 選択したセルをもう一度押すと解除される
 様にしたい・・・?

 ・・・いや、そんなこと出来るかどうか分かりませんが
 私は諦めて選択し直しているので・・・。

 でも、これも違った感じですよね。。。

 (HANA)

 To HANAさん
 ↓ こんなスレが立ったことがあります。
 
[[20020718095244]]『複数範囲を選択している途中で間違えた場合』(こつこ)
 
(純丸)(o^-')b


 純丸さん、有難う御座います。
 結局、利用するのと
 諦めて最初から選び直すのと
 どっちが早い(早く感じる)のですかね。^^

 それにしても、今回は何となく
 数式作成中の選択な気がしてきました。
 となると、セルがSelectされるわけではないので
 流石に状況が違いますね。

 (HANA)


 =SUM(B1:B7,B10:B17,B20:B24)
のような集計をしているのではないでしょうか。
引数の部分をCtrl押しながら範囲選択・・・
 
>セルに色等、規則性が無く、上司の言った項目に従い 毎回、違います。 
気まぐれで指示しているのではないと思うので、
規則性・基準が何かあると思うんですが・・・
(その表の中には出ていないというだけで)
 
作業列が使えるのなら、作業列に任意の値を入力して
印のある行をSUMIF関数で集計などができるのですが。
(みやほりん)(-_∂)b


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.