MENU  □ MANUAL  □ 新着記事  □ 新規トピック追加  □ トピック一覧  □ SEARCH  □ 過去ログ
ログ内検索
・ キーワードを複数指定する場合は 半角スペース で区切ってください。
・ 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
・ 過去ログから探す場合は過去ログをチェック。
・ 過去ログは番号が大きいほど新しいログです。

キーワード/
検索条件/ (AND) (OR)
検索範囲(現在のログ)
(過去ログ1) (過去ログ2) (過去ログ3) (過去ログ4) (過去ログ5)
(過去ログ6) (過去ログ7) (過去ログ8) (過去ログ9) (過去ログ10)
(過去ログ11) (過去ログ12) (過去ログ13) (過去ログ14) (過去ログ15)
(過去ログ16) (過去ログ17) (過去ログ18) (過去ログ19) (過去ログ20)
(過去ログ21) (過去ログ22) (過去ログ23) (過去ログ24) (過去ログ25)
(過去ログ26) (過去ログ27) (過去ログ28) (過去ログ29) (過去ログ30)
(過去ログ31) (過去ログ32) (過去ログ33) (過去ログ34) (過去ログ35)

過去ログ13 を検索

HIT数 / 34件
NO.103350  テーブル範囲内のクリックとオフセットセルのコピー
■投稿者/ koji ohnuma
■投稿日/ 2007/11/25(11:32)
□URL/

C列2〜100までに文字を入れます、D列2〜100までにも文字を入れます。
A列2〜100のいずれかをクリックすると、クリックしたセルと同じ行の、D列のセルの文字列&C列のセルの文字列のコピーをとり、A列1にペーストしたいのですが。

Option Explicit
Private Sub CellCopyPaste_Click(ByVal sender As Systemobject, Byval e As System.MouseEventArgs) Handles CellCopyPaste_Click
Sub i()
Dim i As Integer
For i =2 To 100
Range(("D") & iColumn.Format(Offset(0,3), ("C")) & iColumn.Format(Offset(0,2)).Copy

Range("A1") Paste

End Sub
ここまで調べているのですけれど合っているやら、全く不明です。
どなたか教えてください。


この記事にはVBAのコードが含まれています。

緑の太文字→注釈
茶色の太文字→条件分岐
赤の太文字→ループ
青の太文字→その他



++++++++++++++++++++
OS      ⇒Windows XP
Version⇒Excel 2003
++++++++++++++++++++
親記事
削除チェック/

NO.103360  Re[1]: テーブル範囲内のクリックとオフセットセルのコピー
■投稿者/ 休肝鳥
■投稿日/ 2007/11/25(19:14)
□URL/

何故ループ処理をかましているか
まったく分かりませんが(酔っているからかな???)

>クリックしたセルと同じ行の、
>D列のセルの文字列&C列のセルの文字列のコピーをとり、
>A列1にペーストしたいのですが。

のヒントだけ。

Dim A As Long
A = ActiveCell.Row

Range("A1") = Cells(A, 3).Value & Cells(A, 4).Value

無理にペーストする必要もないです。


この記事にはVBAのコードが含まれています。

緑の太文字→注釈
茶色の太文字→条件分岐
赤の太文字→ループ
青の太文字→その他
記事NO.103350 のレス /
削除チェック/

NO.103361  Re[2]: テーブル範囲内のクリックとオフセットセルのコピー
■投稿者/ MUSI2,
■投稿日/ 2007/11/25(20:07)
□URL/

>全く不明です。
でしょうね
VBAじゃなくてVB.Netのコードが混じっていますよ
ネットから適当に拾ってきてつなぎ合わせたのでしょうか??

まずは、書籍等で基本を勉強されたほうがいいと思います。
記事NO.103350 のレス /
削除チェック/

NO.103385  Re[3]: テーブル範囲内のクリックとオフセットセルのコピー
■投稿者/ koji ohnuma
■投稿日/ 2007/11/26(20:56)
□URL/

最初は、VBの本を買ってきて2ヶ月読み漁っていました、どうも、少し分かってきたら、VBではなくて、VBAのコードを勉強しなくては、やりたいことができないことがわかってきました。
 VBAの本を買って読んでいたら、やりたいことが、ほとんど全てといっていいほど、本に載っていないことが分かりました。それで、インターネットで、同じような処理をしているところが見うけられるコードを拾っています。
質問に答えてくれる内容を見ていますが、関係ないことが書かれているようです。
Dim i As Integer
For i =2 To 100
などのようなコードが含まれています。

今日、VBAの本を読んでいて、下記の質問は、分かりました。

C列2〜100までに文字を入れます、D列2〜100までにも文字を入れます。
A列2〜100のいずれかをクリックすると、クリックしたセルと同じ行の、D列のセルの文字列&C列のセルの文字列のコピーをとり、A列1にペーストしたいのですが。

Range("A1") = Cells(A, 3).Value & Cells(A, 4).Valueについては、やりたいこととは全く違いますし、数値の足し算を違うセルに表示するわけでもなく、参考に市体よいのかどうかが分からない上らいです。.Value があることを疑っています。こんな状態なので、なかなか進みません。

エクセルの任意のセルをクリックすると、エクセルのオフセット位置のセルの文字を、コピーして、ワードをアクティブにしてカーソル位置にペーストしたいわけですけれど、こんなことは、どんな本にも載っていないので、ネットで拾っています。そうすると、いくつか出てきますが、VB6のコードだったりします。





この記事にはVBAのコードが含まれています。

緑の太文字→注釈
茶色の太文字→条件分岐
赤の太文字→ループ
青の太文字→その他



++++++++++++++++++++
OS      ⇒Windows XP
Version⇒Excel 2003
++++++++++++++++++++
記事NO.103350 のレス /
削除チェック/

NO.103386  Re[4]: テーブル範囲内のクリックとオフセットセルのコピー
■投稿者/ 休肝鳥
■投稿日/ 2007/11/26(22:40)
□URL/

>Range("A1") = Cells(A, 3).Value & Cells(A, 4).Valueについては、
>やりたいこととは全く違いますし

あ、そうですか。。
アホらしい回答して失礼しました。
でも、やっぱり何かいているか、サッパリ分からないので、
私はコレで退出。

では、頑張ってくださいね。
記事NO.103350 のレス /
削除チェック/

NO.103387  Re[5]: テーブル範囲内のクリックとオフセットセルのコピー
■投稿者/ MUSI2
■投稿日/ 2007/11/26(22:54)
□URL/

すいません、何を言いたいのかちょっとわかりません。

それに改行されていないせいなのか非常に見づらいです。

すいませんが、お相手するには根気が必要のようで、私も退散します。

一つだけアドバイスいたします。
適当な位置で改行したほうがいいですよ。

記事NO.103350 のレス /
削除チェック/

NO.103394  Re[6]: テーブル範囲内のクリックとオフセットセルのコピー
■投稿者/ あゆたろう
■投稿日/ 2007/11/27(12:16)
□URL/

みなさん退散されたようなので、初心者ですが…。

<C列2〜100までに文字を入れます、D列2〜100までにも文字を入れます。
のシートモジュールに

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim t As String
t = Left(Target.Value, 1)
If t <> "A" Then Exit Sub

こぴぺじゃないけど
End Sub

標準に
Sub こぴぺじゃないけど()
Dim p As Range

Set p = ActiveCell
Range("A1") = p.Value & p.Offset(0, 3).Value & p.Offset(0, 2).Value
End Sub

でチョットかっこ悪いコードですが
<A列2〜100のいずれかをクリックすると、クリックしたセルと同じ行の、
<D列のセルの文字列&C列のセルの文字列のコピーをとり、A列1にペーストしたい
が出来るはずですが。
混乱の基原因の For i =2 To 100
は無視しました。 


この記事にはVBAのコードが含まれています。

緑の太文字→注釈
茶色の太文字→条件分岐
赤の太文字→ループ
青の太文字→その他
記事NO.103350 のレス /
削除チェック/

NO.103401  Re[7]: テーブル範囲内のクリックとオフセットセルのコピー
■投稿者/ あゆたろう
■投稿日/ 2007/11/27(13:39)
□URL/

あれれ(-_-;)ダブルクリックでした。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
MsgBox "SelectionChange"
Dim t As String
t = Left(Target.Value, 1)
If t <> "A" Then Exit Sub

こぴぺじゃないけど
End Sub

にして下さい。
もっとスマートなやり方あるかも知れません。

質問時の改行と、”****.Value があることを疑っています。”等の文章を学んで
識者の回答をお待ち下さい。


この記事にはVBAのコードが含まれています。

緑の太文字→注釈
茶色の太文字→条件分岐
赤の太文字→ループ
青の太文字→その他
記事NO.103350 のレス /
削除チェック/

NO.103404  Re[8]: テーブル範囲内のクリックとオフセットセルのコピー
■投稿者/ koji Ohnuma
■投稿日/ 2007/11/27(14:12)
□URL/

あゆたろうさん、
ありがとうございます。

自分で調べたところでは、offset変数を使わなくても済むようです。
また、
Range("A1") にとりあえず、2つのセルの文字を表示することを考えたので、
Range("A1") =…というようになりましたが、

本当にやりたいことは、セルをクリックすると、
オフセット位置の2つのセルに入力された文字をコピーして、
直前にアクティブであったワードをビジブルにしてカーソル位置
にペーストすることです。

今日、またエクセルVBAの本を買ってきたので調べます。目的の作業ができるプロ
グラムが作成できれば良いわけで、そのために、エクセルVBAの全てを勉強するの
は非効率的です。買ってきた本は、ゲームとか、売掛帳とか、データベースの説明
を通じて、プログラムを知ってもらおうという、形式になっていて、関係のない知
識を突っ込む余裕はありません。


エクセルVBAとワードVBAとの関連性のあるプログラムを紹介してある本が
欲しいのですが、絶版ですね。
記事NO.103350 のレス /
削除チェック/

NO.103473  Re[9]: テーブル範囲内のクリックとオフセットセルのコピー
■投稿者/ koji ohnuma
■投稿日/ 2007/11/28(22:44)
□URL/

あゆたろうさん、
この前は、ありがとうございます。

やはり、自分で調べたところでは、offset変数を使わなくても済むようです。

offsetを使うときと、使わないときとでは()内の数値が異なってくるようです。

わたしは、
ActiveCell(y)
ActiveCell(x)
Range("By").Cells(1,3)
Range("Ax").Cells(1,4 & 1,3)
という形でオフセットセルを特定しようと思います。
この場合は、()内に0は入りません。


ダブルクリックしたときに、コードを実行するというのは、セルをダブルクリック
するときと、コントロールをダブルクリックするときがあるようです。


クリックしたときにコードを実行するというのも、セルをダブルクリックするときと、コントロールをダブルクリックするときがあるようです。

セルを右クリックするとコードを実行するというのがありますが、使い方が違うようです。

セルを左bクリックするとコードを実行するというのはなさそうです。
代わりに、MouseDownというのがあるので、これかな、と検討しましたが、
これもちょっと使い方が違うようです。

セルがアクティブなときにコードを実行するというのもありますが、
どうも違うようです。

Selct Withの構文や、If文で場合分けすることが適切なのかも考えました。
いずれも数値に対するコード処理が行われているので、参考にできません。


今、一番可能性があるのを見つけました。セルの選択範囲が変更されたときに
コードを実行する、というのがあります。これをしっかり調べているところです。




この記事にはVBAのコードが含まれています。

緑の太文字→注釈
茶色の太文字→条件分岐
赤の太文字→ループ
青の太文字→その他



++++++++++++++++++++
OS      ⇒Windows XP
Version⇒Excel 2003
++++++++++++++++++++
記事NO.103350 のレス /
削除チェック/

NO.103472  Re[9]: テーブル範囲内のクリックとオフセットセルのコピー
■投稿者/ n
■投稿日/ 2007/11/28(22:21)
□URL/

こんにちは。
余計なお節介かもしれませんが
>それで、インターネットで、同じような処理をしているところが見うけられるコードを拾っています。
>目的の作業ができるプログラムが作成できれば良いわけで、
>そのために、エクセルVBAの全てを勉強するのは非効率的です。..関係のない知識を突っ込む余裕はありません。
コードって、それだけが何処かに落ちているものではないでしょうし、
『関係のない知識を突っ込む余裕』がなく、
『目的の作業ができるプログラムが作成できれば良い』のなら、
対価を払ってどこかにプログラムを作ってもらう事をおすすめします。

そうではなくて、ご自分で作成する気がおありなら
"ExcelVBA Word"
を検索語としてGoogle検索してみてください。
http://members.at.infoseek.co.jp/kenchan_h/index21.html
http://www.moug.net/skillup/nksw/nksw15-04.htm
などのサイトが検索結果として表示されます。
また、Wordにもマクロの自動記録機能があります。
上記サイトを参考に、この機能を活用すればできます。

あと、ExcelVBAについては
>本当にやりたいことは、セルをクリックすると...
『セルをクリック』をダブルクリックで妥協して、
あゆたろうさんのレスの、Worksheet_BeforeDoubleClickイベントを応用されると良いでしょう。


この記事にはVBAのコードが含まれています。

緑の太文字→注釈
茶色の太文字→条件分岐
赤の太文字→ループ
青の太文字→その他
記事NO.103350 のレス /
削除チェック/

NO.103477  Re[10]: テーブル範囲内のクリックとオフセットセルのコピー
■投稿者/ koji ohnuma
■投稿日/ 2007/11/28(23:03)
□URL/

>対価を払ってどこかにプログラムを作ってもらう事をおすすめします。

実はプログラマには依頼しました。ずいぶんと検討されたようですが、
最終的にはできませんと、断られました。

>"ExcelVBA Word"を検索語としてGoogle検索してみてください。
"ExcelVBA"と"WordVBA "について検索語として調べました。
しかし、適切なものはありませんでした。

"ExcelVBA Word"について調べてみます。

>『セルをクリック』をダブルクリックで妥協して、
あゆたろうさんのレスの、Worksheet_BeforeDoubleClickイベントを
応用されると良いでしょう。

これは、妥協できません。私の職業分野では、プロとして一日の文書入力を
20000字〜40000字は打ち込んでいます。考えながら、打ち込んでいる
わけです。
そのうちに、打ち込んでいる文字を間違えてしまうのです。これをなくすための
ユーティリティが必要です。ダブルクリックなどは到底考えられません。
ワンクリックが全てです。

ワードで@マークとオートコレクト機能を使うことで、入力を省力している人が
いて、大変便利しているという報告がありますが、これとて、5文字くらい入力
して、その上、Oltキー+F11キーを使うのですよ。
一覧表を作り、ワンクリックで済ませるわけです。そうすれば、みんなが助かります。

私は、最近、言箱を使って入力を省力していますが、これは、欠点が一杯あります。私の文章打ち込みの仲間は、不便で使いこなせません。

そういうわけで、違う観点からの、対策を考えているのです。






この記事にはVBAのコードが含まれています。

緑の太文字→注釈
茶色の太文字→条件分岐
赤の太文字→ループ
青の太文字→その他



++++++++++++++++++++
OS      ⇒Windows XP
Version⇒Excel 2003
++++++++++++++++++++
記事NO.103350 のレス /
削除チェック/

NO.103483  (削除)
■投稿者/ /
■投稿日/ 2007/11/28(23:33)
□URL/

この記事は削除されました
記事NO.103350 のレス /
削除チェック/

NO.103492  Re[12]: テーブル範囲内のクリックとオフセットセルのコピー
■投稿者/ あゆたろう
■投稿日/ 2007/11/29(01:57)
□URL/

koji ohnumaさん:休肝鳥さん:nさん今晩は
koji ohnumaさん
私のコードはあんまり...。だったようですね
私はExcelVBAにはまって色々勉強中です。(仕事に余裕があるせいか)
<ActiveCell(y)
<ActiveCell(x)
Range("By").Cells(1,3)
Range("Ax").Cells(1,4 & 1,3)
↑ のやり方はわかりません。多分、休肝鳥さんの提示コードに似たようなこと
だと思いますけど。
文章からkoji ohnumaさんはとても強い人だと感じました。私もkojiです。
がんばり過ぎないでください。(私の中で、がんばってる人への敬意を込めた挨拶です)

nさんへ・質問があったのでレス立ち上げました。お時間が有れば見てください。
Titleを”nさんへ”にしたかったけどいろんな人から攻撃を受けそうで(冗談です)


この記事にはVBAのコードが含まれています。

緑の太文字→注釈
茶色の太文字→条件分岐
赤の太文字→ループ
青の太文字→その他
記事NO.103350 のレス /
削除チェック/

NO.103497  Re[13]: テーブル範囲内のクリックとオフセットセルのコピー
■投稿者/ 佳
■投稿日/ 2007/11/29(07:55)
□URL/

> やはり、自分で調べたところでは、offset変数を使わなくても済むようです。
offsetを使ったコードと使わないコードのどちらが速いか確認しましょう。
入力の高速化が目的でしょう?
速いほうのコードを選ぶべきだし、さらに速いコードを求めて試行錯誤するべきかと。


クリックでマクロを起動するより、キーボードショートカットに割り付けたほうが
いいのではないですか。入力のプロは手をキーボードからマウスまで動かすことを
嫌います。時間が惜しいから。

あるいは。
エクセルの一覧表にできる=使う単語が決まっている=単語登録で十分では?
エクセルに切り替えてワードに戻ってくる時間がもったいないし、
一覧表から探す時間もできれば節約したい。


※余計なことを入れる余裕はなくても、基礎はしっかり入れた方がいいと思います。



記事NO.103350 のレス /
削除チェック/

NO.103500  Re[14]: テーブル範囲内のクリックとオフセットセルのコピー
■投稿者/ koji Ohnuma
■投稿日/ 2007/11/29(09:35)
□URL/

>offsetを使ったコードと使わないコードのどちらが速いか確認しましょう。

こういうレベルの時間ではないのです。コンピュータが計算をするのは、
何マイクロ秒です。
クリックしたら、演算に時間がかかり、10秒後とか、30秒後に出力表示される
のならば使えません。1秒後の表示でもかったるい感じになります。
しかし、そういう問題は、起きないと思います。



>クリックでマクロを起動するより、キーボードショートカットに割り付けたほう
がいいのではないですか。
入力のプロは手をキーボードからマウスまで動かすことを嫌います。時間が惜しいから。

それは違います。私は、コピー&ペーストをキーボードショートカットで行いま
す。若い時には、肉体が元気だから、指への刺激が問題ないでしょうが、
還暦を過ぎると、キーボードを叩く指に加わる衝撃で夜も寝られません。
それで、毎日、超音波治療器を使います。

クリック入力でなければ早くすることができません。たとえば、C1:C200まで
に用語が入っているとします。あらかじめ、文章を作成開始する前に一覧表として
毎回新しく作るわけです。原則として、前回のものは全く使えません。

今、ワードで文章を作成中に、エクセルをアクティブにして例えば、A32のセルを
選択してクリックし、その結果として、直前にアクティブであったワードが再びア
クティブになり、カーソル位置に、エクセルのC32のセルに入力した用語が入力さ
れる、ということにしたいのです。このときは、マウスを使いエクセルをアクティ
ブにしてワンクリックするだけです。

ところが、キーボードのショートカットでは、マウスを使いエクセルをアクティブ
にして、C1:C200の範囲からのA32のセルの選択やクリックは、どうなりますか。



>単語登録で十分では?

十分ではありません。1つの文章の作成中に、例えば、「15の文字列+符号」を百
回入力します。短縮登録は不可です。なぜなら、このような登録は、他の文章のと
きには、邪魔になります。それこそ、単語登録に時間がかかります。

単語登録は頻繁に必要十分に行った上で、さらに必要です。なぜならば、単語登録
というのは、よみを入れて、スペースキーを叩いて、プルダウンメニューから選択
してEnterキーを押します。いくつ操作しますか。

基礎はいつのまにかしっかりと入ってしまいます。





++++++++++++++++++++
OS      ⇒Windows XP
Version⇒Excel 2003
++++++++++++++++++++
記事NO.103350 のレス /
削除チェック/

NO.103503  Re[15]: テーブル範囲内のクリックとオフセットセルのコピー
■投稿者/ koji Ohnuma
■投稿日/ 2007/11/29(10:33)
□URL/

>"ExcelVBA Word"
>を検索語としてGoogle検索してみてください。> ;http://members.at.infoseek.co.jp/kenchan_h/index21.html
> ;http://www.moug.net/skillup/nksw/nksw15-04.htm

について教えてくれた方、ありがとうございます。朝の出勤前に、
10分ほど見たのですけれど、大変に良い情報が入っているようです。


ExcelとWordのVBA のバイブルのような、井川はるきさんの著作本があるよう
なのでみたいのですが、絶版のようです。


++++++++++++++++++++
OS      ⇒Windows XP
Version⇒Excel 2003
++++++++++++++++++++
記事NO.103350 のレス /
削除チェック/

NO.103511  Re[16]: テーブル範囲内のクリックとオフセットセルのコピー
■投稿者/ n
■投稿日/ 2007/11/29(12:10)
□URL/

>ExcelとWordのVBA のバイブルのような、井川はるきさんの著作本があるよう
>なのでみたいのですが、絶版のようです。
...これの事かな?
http://www.amazon.co.jp/gp/offer-listing/4798007714/ref=olp_tab_used?condition=used


またお節介かもしれませんが、方針変更するなら早い時期が良いので書いておきます。
本件は、ExcelVBA側からWordと連携させるより、WordVBA側からExcelと連携させたほうが良さそうです。

Word側にListBoxを備えたUserFormを作成する。
UserForm_Initializeイベントなどで、ListBoxにデータをセットする。
(この時にExcel.Applicationと連携し、一覧表を入力したExcelBookを開いてListBoxに読み込む)
あとはWordのUserFormのListBox1_MouseUpなどのイベントを利用する。
...

方針変更されるなら、WordVBAがテーマの掲示板でご質問されたほうが良いかもしれません。
内容的にそんなに複雑ではないので、この掲示板でピンポイントなアドバイスを受けることも可能かとは思いますが。

もし掲示板を移動されるなら、その際はこのスレッドを終了される意思表示をして移ったほうが良いでしょう。
記事NO.103350 のレス /
削除チェック/

NO.103514  Re[17]: テーブル範囲内のクリックとオフセットセルのコピー
■投稿者/ koji Ohnuma
■投稿日/ 2007/11/29(12:31)
□URL/

>またお節介かもしれませんが、方針変更するなら早い時期が良いので書いておきます。
>本件は、ExcelVBA側からWordと連携させるより、WordVBA側からExcelと連携させたほうが良さそうです。

ありがとうございます。
しかしながら、この考え方は、的外れです。

そもそも、Wordで文書を作成するときの入力を省力することが目的です。

Excelでなくても良いのです。VBでFormにクリックするだけのラベルボタンを200個
並べ、各ラベルボタンに対応連携させてテキストボタンを200個並べても良いので
す。しかしこれだと、プログラムがおもくなりますし、作成が大変です。

これに対して、エクセルを使えば、セルの削除や割り込みができるし、
入力した用語の並べ替えもコピー・ペーストで処理できます。
さらに、いくつかの文書フォーム、例えば、訴状のひな形とか、内容証明書のひな形、といった多用する書面を、たった1つのセルに格納できます。エクセル本来の能力は利用できます。

そもそも、クリックイベントの発生がエクセルで行われるのに、WordVBA側からExcelへの連携はありえません。

なお、セルをダブルクリックしてイベントを発生させるプロシージャでは、朝から
晩まで、一日中、マウスを持つ手がチャタリングしているような感じになります。
スマートではありません。

 また、Variantを多用するプログラムがあったので、Variantってなんだっけ、
…ふむふむ…、分かったことは、全く使わなくて良いかな。と思っています。





この記事にはVBAのコードが含まれています。

緑の太文字→注釈
茶色の太文字→条件分岐
赤の太文字→ループ
青の太文字→その他



++++++++++++++++++++
OS      ⇒Windows XP
Version⇒Excel 2003
++++++++++++++++++++
記事NO.103350 のレス /
削除チェック/

NO.103523  Re[18]: テーブル範囲内のクリックとオフセットセルのコピー
■投稿者/ Who Me?
■投稿日/ 2007/11/29(13:40)
□URL/

nさんの考え方に一票。
そもそも、プロに依頼したら"無理だ"と言われたほど細かい仕様を
要求するのであれば、「工夫すれば」どの部分まではできて、どの
部分からは不可能か ? の目途を立てられるぐらいのスキル(Excel,Word両方
のVBAについて)を身につけるべきでしょう。
たとえばnさん(私もですが)は、初めから
>ラベルボタンを200個並べ、各ラベルボタンに対応連携させて
>テキストボタンを200個並べて
などという非現実的な発想などしてません。選択項目が多くなるに従って
ドロップダウンコンボボックス → リストボックス というように
それに適したコントロールを使うように勧めているのです。
そうしたコントロールでは、RemoveItem や RemoveAllItems によって
柔軟に目的の項目を削除し、List で一気に配列をリストに追加できます。
最近のWordなら Split関数 ぐらい実装されているだろうから、配列は
tabやspace区切りの.txtや、カンマ区切りの.csvのようなファイルから
文字列を読み込むことで簡単に作れますね。
とにかくWord・VBAで使われている、コンボボックスやリストボックスの
ヘルプぐらいは読んでみて下さい。
>Wordで文書を作成するときの入力を省力することが目的
なら、できるだけWordのみで出来るようにするのが原則ですが、軽い
テキストファイルを併用するぐらいなら、許容範囲と言えるでしょう。
何にせよ、掲示板に質問を寄せるなら"独りよがりな思い込み・拘り"を
捨て、いったん全てを白紙にするぐらいの気持ちで、謙虚に他者の意見に
耳を傾ける姿勢も必要にることがあります。
なお蛇足になりますが
>キーボードを叩く指に加わる衝撃で夜も寝られません。
>それで、毎日、超音波治療器を使います。
できるだけ大きいPCショップへ行って、なるべく多くのキーボードに実際に
触れてみて下さい。キーストロークやタッチの感触が、驚くほど違うことに
気づかれると思います。治療器で指を直すことより先に、体に合ったボード
を使うことを考えるべきではないでしょうか ?
どうもあなたの考え方からは、"本末転倒" してばかりのような印象を
受けるのですが・・・。
記事NO.103350 のレス /
削除チェック/

NO.103516  Re[18]: テーブル範囲内のクリックとオフセットセルのコピー
■投稿者/ koji Ohnuma
■投稿日/ 2007/11/29(12:44)
□URL/

>Word側にListBoxを備えたUserFormを作成する。
>UserForm_Initializeイベントなどで、ListBoxにデータをセットする。
(この時にExcel.Applicationと連携し、一覧表を入力したExcelBookを開いてListBoxに読み込む)
>あとはWordのUserFormのListBox1_MouseUpなどのイベントを利用する。

やっぱり、このようなやり方があったのですね。
もちろん、最初から予想はしていました。ワードで第2のフレームを作ってそこへ
一覧表を書き込みますと、Saveしたときに、一覧表と、本文と、コンビネーション
ファイルの3つのファイルが同一のフォルダに作成されます。ところが、1つのフ
ァイルを変にいじくると、大変なことになってしまいます。



出来上がった文章ファイルをクライアントにメールで添付送信したり、監督官庁へ
の書類提出のための他の方が処理するには、
このような、UserFormを除いたファイルを別途に用意しなければなりません。

このような事情から、おそらくこの方法は回避した方が良いと判断します。Koij





++++++++++++++++++++
OS      ⇒Windows XP
Version⇒Excel 2003
++++++++++++++++++++
記事NO.103350 のレス /
削除チェック/

NO.103520  Re[19]: テーブル範囲内のクリックとオフセットセルのコピー
■投稿者/ n@呆れ果て
■投稿日/ 2007/11/29(13:08)
□URL/

>ありがとうございます。
>しかしながら、この考え方は、的外れです。
>そもそも、クリックイベントの発生がエクセルで行われるのに、WordVBA側からExcelへの連携はありえません。
......?

>>Word側にListBoxを備えたUserFormを作成する。
>>UserForm_Initializeイベントなどで、ListBoxにデータをセットする。
>(この時にExcel.Applicationと連携し、一覧表を入力したExcelBookを開いてListBoxに読み込む)
>>あとはWordのUserFormのListBox1_MouseUpなどのイベントを利用する。
>
>やっぱり、このようなやり方があったのですね。
>もちろん、最初から予想はしていました。
......?

......
>このような、UserFormを除いたファイルを別途に用意しなければなりません。
最初から、マクロ用DocumentにUserFormを作成してActiveDocumentとは別にすれば良いだけです。

but、続けるなら何処か他所のWordVBA板でやったほうがよいよ?
記事NO.103350 のレス /
削除チェック/

NO.103524  Re[20]: テーブル範囲内のクリックとオフセットセルのコピー
■投稿者/ MUSI2,
■投稿日/ 2007/11/29(13:42)
□URL/

少しだけ発言します。

Wordならば、NormalプロジェクトにUserformを作成
おなじくNormalプロジェクトのThisDocumentに
それをShowするモジュールを作成しておきます。

そのモジュールをツールバーに登録しておく
というのはどうでしょう。

それにしても、この質問者の方は、
せっかくのいろいろな提案に対しての「だめだし」の口調がきついですね。
質問者と回答者というよりは依頼者と業者みたいに見えます (^^;

では。
記事NO.103350 のレス /
削除チェック/

NO.103521  Re[20]: テーブル範囲内のクリックとオフセットセルのコピー
■投稿者/ koji Ohnuma
■投稿日/ 2007/11/29(13:30)
□URL/

>Word側にListBoxを備えたUserFormを作成する。
>UserForm_Initializeイベントなどで、ListBoxにデータをセットする。
(この時にExcel.Applicationと連携し、一覧表を入力したExcelBookを開いてListBoxに読み込む)
>あとはWordのUserFormのListBox1_MouseUpなどのイベントを利用する。

一覧表の作成は、最初に一応作る場合もありますが、文章作成中に随時にコピペ
してセルに入力してきます。ある構想要素の下位概念に5個とか10個位の中概念
の構成要素ができてきて、さらに、中概念の構成要素に小概念の構成要素がぶら下
がるようになります。孫概念の構成要素も出てきます。すると、そのたびに、一覧表の符号や用語をずらしていきたいのです。
これらは、作成者のケースバイケースで殆ど趣味で手順が違ってきます。

上記の手順だと、Excel.Applicationと連携し、一覧表を入力した…とありますから、結局は、エクセルでの一覧表の作成を行うことになります。それを、ワードに呼び込む必要はありません。エクセルとワードは、マウスのポインタでワンクリックで切り替えできます。ワードに呼び込んでも同じことです。

もっとも、エクセルからワードへの連携ができないということであれば、仕方ないのですけれど。

あと、他所のWordVBA板などでやったほうがよいというのは?です。うつらせることに、何か意図がありますか。



++++++++++++++++++++
OS      ⇒Windows XP
Version⇒Excel 2003
++++++++++++++++++++
記事NO.103350 のレス /
削除チェック/

NO.103527  Re[21]: テーブル範囲内のクリックとオフセットセルのコピー
■投稿者/ koji Ohnuma
■投稿日/ 2007/11/29(13:58)
□URL/

>ラベルボタンを200個並べ、各ラベルボタンに対応連携させて
>テキストボタンを200個並べて
などという非現実的な発想などしてません。

感情を逆なでしてようで大変に申し訳ありません。
ラベルボタンを200個並べ、各ラベルボタンに対応連携させてテキストボタンを200個並べて…は私が考えていたことです。




>選択項目が多くなるに従ってドロップダウンコンボボックス → 
リストボックス というようにそれに適したコントロールを使うように
勧めているのです。

ドロップダウンコンボボックスはだめです。それを実現してあるソフトを
すでに使いました。このように、すすめられたら、断るのはいけないのでしょうか。いろいろと親切に助言していただけるのはありがたいのですか、
アドバイスを無視しているわけではありませんが、自分なりに採用したい方向が
あります。方向が違ったアドバイスについては、のれません。

パソコンは会社から与えられます。個人的に、体に合ったボードを使うことを考えるべきというのは無理ですね。



記事NO.103350 のレス /
削除チェック/

NO.103530  Re[22]: テーブル範囲内のクリックとオフセットセルのコピー
■投稿者/ apple
■投稿日/ 2007/11/29(14:09)
□URL/

こんにちわ

そもそもの質問は、
>C列2〜100までに文字を入れます、D列2〜100までにも文字を入れます。
>A列2〜100のいずれかをクリックすると、クリックしたセルと同じ行の、
>D列のセルの文字列&C列のセルの文字列のコピーをとり、A列1にペーストしたいのですが。
だった筈。
これに対し、一番近い「ダブルクリック」は否定され、話が拡大しているように思います。
皆、「数々の否定」で提案しないだけ。
「クリック」にこだわるのなら、A2:A100 のそれぞれに、フォームのボタンを配置するだけ。
それじゃ目立ち過ぎなら、四角形を配置してマクロ登録するだけ。
そんなのは、手動配置はちょっと面倒だが、コードでするなら、マクロの登録も含めて、
10 行程のコードです。(当然、やりたい事の実コードは別に書かなければいけない)

また「スマートでない」と却下でしょうか?
記事NO.103350 のレス /
削除チェック/

NO.103532  Re[23]: テーブル範囲内のクリックとオフセットセルのコピー
■投稿者/ koji Ohnuma
■投稿日/ 2007/11/29(14:15)
□URL/

>「クリック」にこだわるのなら、A2:A100 のそれぞれに、フォームのボタンを配置するだけ。
>それじゃ目立ち過ぎなら、四角形を配置してマクロ登録するだけ。

やっぱり、他にやりようがないということが結論のようですね。
これをみきわめたかったのです。
そうすると、自分の描いたものを修正しなくてはなりませんから。

ありがとうございました。Koji
記事NO.103350 のレス /
削除チェック/

NO.103542  Re[24]: テーブル範囲内のクリックとオフセットセルのコピー
■投稿者/ apple
■投稿日/ 2007/11/29(14:53)
□URL/

こんにちわ

>他にやりようがない
そんな事は無いと思いますよ。ただわたしには出来ない。

先の提案ですが、配置したボタンや図形は、Visible = False にすれば、簡単に隠せます。
「これから、クリックを活用して仕事をしよう」のタイミングで Visible = True にすれば良い。

また、
>クリックしたセルと同じ行の、D列のセルの文字列&C列のセルの文字列のコピーをとり
のような内容なら、共通のマクロ1種です。
記事NO.103350 のレス /
削除チェック/

NO.103545  Re[25]: テーブル範囲内のクリックとオフセットセルのコピー
■投稿者/ koji Ohnuma
■投稿日/ 2007/11/29(15:13)
□URL/

ありがとうございます。

 こんなとき、船舶航行システムや航空機のPSSRのソフトを開発して航空研等
に収めた友人のプログラマーがいてくれたらと思いました。
 彼には、有償でゲーム開発したときのプログラムを作ってもらいました。
ドキュメントは70頁もあります。今は自分でチップに書き込んでいます。

彼は今年逝去されました。呆然としました。

私の弟も、車載マイコンのソフト開発を長いことしてきたので、聞きましたが、
OfficeのVBAは分からないということでした。

それで、自分で作り上げるよりしょうがないと思っています。

もう少し、文献を読み漁ってダメならば、ボタンを配置する方向で時間をかけて
取り組みます。

それにしても、おかしいですよね。
セルを左クリックするイベントのプロシージャがないなんて。
記事NO.103350 のレス /
削除チェック/

NO.103551  Re[26]: テーブル範囲内のクリックとオフセットセルのコピー
■投稿者/ neptune
■投稿日/ 2007/11/29(16:20)
□URL/

横から失礼

最初から、ササッと読みましたが、未だ使用目的が良く理解できませんが、
GridでClickイベントを求めているらしいのはわかりました。

そこで、UserFormにmicrosoft office spreadsheet x.x (xはOfficeバージョンによる)
を貼り付け、ワークシートと連動させてはどうでしょうか?
 やった事は無いですが、やれば出来そうな気がします。

ちなみに
>ラベルボタンを200個並べ、各ラベルボタンに対応連携させてテキストボタンを200個並べて…は私が考えていたことです。
は皆さん非現実的と言いますが、これには使用上とは別に理由があります。
 実際問題として、こういう事・・コントロールを多数使用する事・・をすると
環境にもよるのか解りませんが、Excelアプリ自体が不安定になるという現象を
経験されている方も居られます。
記事NO.103350 のレス /
削除チェック/

NO.103552  Re[27]: テーブル範囲内のクリックとオフセットセルのコピー
■投稿者/ koji Ohnuma
■投稿日/ 2007/11/29(16:57)
□URL/

横から失礼"さん

>最初から、ササッと読みましたが、未だ使用目的が良く理解できませんが、

ある程度読んで何をために使用するかは、業界の人でないと、必要性がなかなか分からないと思います。実際に、あるのは、1ソフトだけですから。


>GridでClickイベントを求めているらしいのはわかりました。

Gridというのも目にしていますが、ちんぷんかんぷんです。勉強します。


>そこで、UserFormにmicrosoft office spreadsheet x.x (xはOfficeバージョン
による)を貼り付け、ワークシートと連動させてはどうでしょうか?
 やった事は無いですが、やれば出来そうな気がします。

 当方、殆ど、理解できていません。

>ラベルボタンを200個並べ、各ラベルボタンに対応連携させてテキストボタンを200個並べて…は私が考えていたことです。
は皆さん非現実的と言いますが、これには使用上とは別に理由があります。
 実際問題として、こういう事・・コントロールを多数使用する事・・をすると
環境にもよるのか解りませんが、Excelアプリ自体が不安定になるという現象を
経験されている方も居られます。

有難う。こういう情報は助かります。
記事NO.103350 のレス /
削除チェック/

NO.103558  Re[28]: テーブル範囲内のクリックとオフセットセルのコピー
■投稿者/ koji ohnuma
■投稿日/ 2007/11/29(20:28)
□URL/

>"ExcelVBA Word"
>を検索語としてGoogle検索してみてください。

 ExcelVBAでWordファイルを操作する、について教えてくれた方、
大変ありがとうございます。家に帰ってきて、見ました。これを見ると、
イベントの開始以外については、殆ど解決できていると確信しました。

 そうすると、セルをワンクリックしただけでイベントを開始させることに
ついて、考えることに集中できそうです。
 セルをワンクリックするSubがないのは、なぜなのか、と考えていたのですが、
反対解釈として、セルをワンクリックするSubを作ると何らかの不都合があるから
容易していない、と私なりにかんがえました。
 そうすると、次善の策としては、ダブルクリックしかないのか、ということにな
ります。
 1つの方策としては、コマンドボタンを1つだけ作り、クリックするべきセル
をクリックし、次いで、常にこのボタンをクリックする。Subが開始したら、
アクティブセルがC列かD列かを判断してから、オフセットのセルの情報をコピーする。
 その後は、教えてくれたコードにつなげようと思います。
記事NO.103350 のレス /
削除チェック/

NO.103561  Re[29]: テーブル範囲内のクリックとオフセットセルのコピー
■投稿者/ Who Me?
■投稿日/ 2007/11/29(20:55)
□URL/

マウスアクションを減らしたいだけなら

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, _
Cancel As Boolean)

を、試してみるべきでしょう。


この記事にはVBAのコードが含まれています。

緑の太文字→注釈
茶色の太文字→条件分岐
赤の太文字→ループ
青の太文字→その他
記事NO.103350 のレス /
削除チェック/

NO.103566  Re[30]: テーブル範囲内のクリックとオフセットセルのコピー
■投稿者/ koji ohnuma
■投稿日/ 2007/11/29(23:27)
□URL/

koji

皆さんにいろいろ教わりました。ありがとうございました。
他の質問箱を見ていたら、以下のような問答がありました。

〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
Q:セルのどこでも良いからクリックすると起動するイベントってありますか?
A: ありません。右クリックやダブルクリックならあります。
SelectionChangeイベントが近いですが、同じセルを連続してクリックしても、
2回目からは働きません。右クリックやダブルクリックなら、同じセルでも連続し
て起動させることが出来ます。
そして、以下のような、参考コードもありました。

質問内容ですが、セルに□を入力してあり、それをクリックするたびに
■と□を文字入替えをしたいのですが、どのようにしたらよいのでしょうか?Private Sub Worksheet_BeforeRightClick(ByVal Target As Excel.Range, Cancel As Boolean)
With Target
If .Count >= 2 Then Exit Sub
If .Value = "□" Then
.Value = "■"
Cancel = True
ElseIf .Value = "■" Then
.Value = "□"
Cancel = True
End If
End With
End Sub
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
セル A2〜C4 と D3〜G10 を適用する場合です。



Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Intersect(Target, Range("A2:C4, D3:G10")) Is Nothing Then Exit Sub
With Target
Select Case Target.Value
Case ""
Target.Value = "□"
Case "□"
Target.Value = "■"
Case "■"
Target.Value = ""
Case Else
Target.ClearContents
End Select
Cancel = True
End With
End Sub
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
With Target
If .Count >= 2 Then Exit Sub
If .Value = "□" Then
.Value = "■"
ElseIf .Value = "■" Then
.Value = "□"
End If
Cancel = True
End With
End Sub
SelectionChange にCancel はないのではないですか?
やるとしたら .Offset(1,0).Select とか?

〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
これは大変参考になります。
これをベースにコードをいじくろうと思います。


そういうわけで、ここでの質問は、終わりとさせていただきます。




この記事にはVBAのコードが含まれています。

緑の太文字→注釈
茶色の太文字→条件分岐
赤の太文字→ループ
青の太文字→その他
記事NO.103350 のレス / END
削除チェック/


パスワード/

- Child SEARCH -