Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


9911 / 13644 ツリー ←次へ | 前へ→

【24808】F2(編集モード)にするマクロ。 トキ 05/5/11(水) 10:12 質問[未読]
【24811】Re:F2(編集モード)にするマクロ。 ウッシ 05/5/11(水) 10:31 回答[未読]
【24815】Re:F2(編集モード)にするマクロ。 Kein 05/5/11(水) 10:48 回答[未読]

【24808】F2(編集モード)にするマクロ。
質問  トキ  - 05/5/11(水) 10:12 -

引用なし
パスワード
   EXCEL2000です。
あるセルで、

F2を押して編集モードにするマクロ。
ENTERを押して決定にするようなマクロ。
それぞれ、そのような命令は出来るでしょうか?
数値などは入れません。

DOS版ロータスのマクロで言えば、 /E~Enter
こんな感じだったかなぁ?
VBAだと、
ActiveCell.value = "1"
みたいになりますよね。ここには、編集モードにするという命令は
含まれていませんし、決定するというENTERの命令も含まれていません。
あえて言うならば、両方を同時に行って、結果のみを求めているという感じです。
純粋にF2の働きをするマクロ・ENTERの働きをするマクロが欲しいのです。
お願いします。

■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
なぜこのような無意味なことが必要かは、以下に書きます。
もし他の方法があれば、教えてください。(授業で使いたいのです)
わかりにくくてすいませんが。

結論から言うと、データの外部参照です。
40人の生徒ファイルの、セルD1にある数値を、集めたいということです。

パソコン室に教員機(サーバー)1台、生徒機40台があります。
生徒にワープロの文章を打たせます。課題は1000以上あります。
そのソフトはエクセルVBAで作り、教員機(サーバー)に生徒数分(40個)
保存されています。生徒はそこから引っ張ってきて練習します。
今、いくつの課題をやったかを各自のセルD1に記録保存できるようになってます。その全員の数値を集めて、「進度表」という教員機のファイルにまとめて、ランク表をつくってます。
そのとき、生徒1人1人のセルD1に記録保存されている数値をどのように集めるかを考えた時、現在はこのようにしています。

<ランク付けのセルに入力した式>
=H:\J\機械番号(32)\2年4組\[ワープロ練習6.xls]Sheet1'!$D$1
(Hはサーバー。 生徒ファイルのSheet1のD1を参照しています。)
これだと、オンラインでの即時更新は出来ません。
生徒が保存して、こちらで、更新作業をしなければなりません。
その更新作業の時に、どうやるかをやってみたら、

1. F2→Enter や
2. コピーしてどっかに貼り付けて、元に戻す。

みたいな感じでしか出来ませんでした。つまり 無意味な「CALCULATE」みたいな
動作が必要なんでしょうか?

「データ→データの更新」という命令があるようですがFALSEになってます。
趣旨が違うのかな?

1つの機械で2つのファイルを一方から“=”で参照する時は
即時更新されるんですが、LANの関係なのでしょうか、上記の場合は
“=”で参照しても即時更新は出来ません。別機械でやってるからでしょうか?

つまり40人の生徒の、セルD1にある数値を、集めたいということです。
WINSOCKで通信させるかとも考えましたが、とりあえず簡単な方法を考えてます。

集計する、進度表ファイルの場所
H:\17年度¥進度表.xls

生徒ファイルの場所(No.32の生徒の場合)
H:\J\機械番号(32)\2年4組\ワープロ練習6.xls

わかりにくいと思いますが、分かる方、いましたらお願いします。

【24811】Re:F2(編集モード)にするマクロ。
回答  ウッシ  - 05/5/11(水) 10:31 -

引用なし
パスワード
   こんにちは

リンクの更新はこんな感じですけど、リンク先の保存は必要みたいですね。

ActiveWorkbook.UpdateLink Name:= _
  "H:\J\機械番号(32)\2年4組\ワープロ練習6.xls", Type:=xlExcelLinks

【24815】Re:F2(編集モード)にするマクロ。
回答  Kein  - 05/5/11(水) 10:48 -

引用なし
パスワード
   >オンラインでの即時更新は出来ません

Dim aLinks As Variant

With ThisWorkbook
  .UpdateLink Name:=.LinkSources
  aLinks = .LinkSources(xlExcelLinks)
  .SetLinkOnData aLinks(UBound(aLinks)), "MyPro"
End With

などとしたらどうでしょーか ?
なおプロシージャ "MyPro" は、リンクの更新をトリガーにする
イベントマクロになります。

9911 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free