プロが教える店舗&オフィスのセキュリティ対策術

社内専用システム(おそらくイントラネットかと思います)へ、エクセルのE5セルにあるデータを貼り付けたいのです。
社内専用システム画面には入力エリアが複数ありますが、その3番目の入力エリアに貼り付けたいのです。

エクセルにてE5を選択
⇒「Ctrl+C」
⇒社内専用システム画面をアクティブにする
⇒3番目の入力エリアをマウスにて選択して「Ctrl+V」

または、

エクセルにてE5を選択
⇒「Ctrl+C」
⇒社内専用システム画面をアクティブにする
⇒「Tab」
⇒「Tab」
⇒「Ctrl+V」

にて3番目の入力エリアに貼り付けることはできるのですが、
「3番目の入力エリアをマウスにて選択」又は「Tab」「Tab」の作業を抜かして、

エクセルにてE5を選択
⇒「Ctrl+C」
⇒社内専用システム画面をアクティブにする
⇒「Ctrl+V」
のみで3番目の入力エリアに貼り付けることは出来ないでしょうか?

何千回と行う作業ですので「3番目の入力エリアをマウスにて選択」又は「Tab」「Tab」の作業を抜かして行いたいのです。

社内専用システムのことですので、確かな回答はできかねるかと思います。「これでできませんか?」レベルでかまいませんので、回答していただけると助かります。

よろしくお願いいたします。

A 回答 (8件)

#1のWwolfです。

ご返答有難う御座います。
不必要なというか要らぬお世話になるかもしれませんが、気になるので記載しておきます。
今の世の中、「出来る事」と「していい事」が混同されている事が多いように思えます。
質問者様個人的に考えると、本件の業務効率は大変良いと思いますし、出来るならする事を許可を得てすべき事だとも思います。
しかしながら、もし質問者様のアウトソーシング会社が、ソリューションを含めた派遣内容であれば、提案される事も良いと思います。
しかし、その効率化が出来た事により、そのノウハウのみ吸い上げられ派遣会社へ発注しなくなる可能性も含まれます。
また、そのプログラム(例えVBAであろうとも)により派遣元の会社に損害を与えないとも限りません。(言いがかりを付けられても言い返せません)
よって、「システム管理責任者と相談すべき」とした私もその他の回答者さんも細かく説明はしてはいませんが、根底にあると思います。
折角の良い事が、悪い事になるのも馬鹿らしいでしょうし、成功と失敗は紙一重です。
各回答者さんへの「お礼」を見ると、とても良い人であろうと勝手に思い老婆心ながら本回答に敢えて記載しました。
回答者様の上司に相談の上、取り組んでください。そして頑張ってください。
    • good
    • 0
この回答へのお礼

ご心配いただき、ありがとうございます。

「出来る事」と「していい事」が違うとの事、ご忠告ありがとうございます。
「出来そうだ!!」と思うと、周りが見えずに突き進んでしまわないよう、心しておきたいと思います。

でも、今回の作業は、本番データへの書き込みというのではなく、データ照会を行う時に利用したいと考えているものですので、会社に損害を与える心配はないように思います。

質問内容には、細かく書きませんでしたが、私がしている作業というのは、他の方が入力をした画面のダブルチェック作業なんです。

具体的に書きますと、

(1)Aさんが、顧客番号「0001」「0005」の方の申込書をB部署へ送るときに、顧客番号「0001」「0005」の申込書の所在をデータ上で「B部署にあります」とうふうに入力をします。

(2)Aさんが「0001」「0005」の方の申込書を送付します。
この時に、Aさんがエクセルで送付するものの一覧表を作成します。

(3)私が、エクセルで作られた一覧表を見ながら、データ上で「0001」「0005」の方の申込書の所在が「B部署」になっているかを1件1件顧客番号を入力しながらダブルチェックを行います。

この(3)の処理をする時に、せっかくAさんがエクセルで入力したファイルがあるのですから、顧客番号を手入力する手間を省略したいなと考えました。

Aさんが作ったエクセルファイルはセルE5から下にに顧客番号が並んでいます。
セルE5の顧客番号のダブルチェックが終わったら、E5のデータを上にシフトして削除していけば、常にセルE5にチェックしたい顧客番号が来るというわけです。この削除処理のマクロは私でも作成できました。

だから、この質問で出来上がるマクロと合体させれば、かなりダブルチェックが楽になるんだけどな・・・と思っています。
(実に、地味な作業で恐縮です・・)

私たちの作業手順を会社が知っておく必要があるのは同じなので、上への報告は怠らないように進めたいと思います。

ありがとうございました。

お礼日時:2009/08/15 22:03

>コンパイルエラー Enc Sub、End Function または End Property 以降には、コメントのみが記述できます」というエラーメッセージウィンドウが表示されてしまいます・・・



あぁ、たぶんですが
Public Sub CopyPaste()
より上の方にある Public Declare 宣言、Public Const宣言は
別モジュールにしないといけなかったかもです
Module1 に記載しているのであれば、
Public Declare 宣言、Public Const宣言は
Module2 を作成して移動して試してみてください。

この回答への補足

再びの回答、ありがとうございます。

会社のエクセル2003でもやってみました。
やはり、コンパイルエラー
「Enc Sub、End Function または End Property 以降には、コメントのみが記述できます」
というエラーメッセージウィンドウが表示されてしまいました。

モジュールも分けてみましたが、同じ結果でした。
何か、解決方法がお分かりでしたら教えてください。

よろしくお願いいたします。m(_ _)m

補足日時:2009/08/15 21:29
    • good
    • 0

EXCEL 2003になりますが



まず、新規BOOKを作成して
以下のマクロを記述し

Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Public Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Public Const KEYEVENTF_KEYUP = &H2
Public Const VK_MENU = &H12
Public Const VK_CONTROL = &H11
Public Const VK_TAB = &H9

Public Sub CopyPaste()
Dim strCopy As String

'現在アクティブなシートの E5 をコピー
Application.ActiveSheet.Range("E5").Copy

'[ALT]+[TAB]キーを押した時の操作
'直前にアクティブになっていたウインドウに切替ります。
Call keybd_event(VK_MENU, 0, 0, 0) ' Alt キーを押す
Call keybd_event(VK_TAB, 0, 0, 0) ' Tab キーを押す
Call Sleep(100) ' ちょっと待つ
Call keybd_event(VK_TAB, 0, KEYEVENTF_KEYUP, 0) ' Tab キーを離す
Call keybd_event(VK_MENU, 0, KEYEVENTF_KEYUP, 0) ' Alt キーを離す

'[TAB]キーを押します
Call keybd_event(VK_TAB, 0, 0, 0) ' Tab キーを押す
Call Sleep(200) ' ちょっと待つ
Call keybd_event(VK_TAB, 0, KEYEVENTF_KEYUP, 0) ' Tab キーを離す

'[TAB]キーを押します
Call keybd_event(VK_TAB, 0, 0, 0) ' Tab キーを押す
Call Sleep(200) ' ちょっと待つ
Call keybd_event(VK_TAB, 0, KEYEVENTF_KEYUP, 0) ' Tab キーを離す

'[CTRL]+"V" キーを押した時の操作
Call keybd_event(VK_CONTROL, 0, 0, 0) ' Ctrl キーを押す
Call keybd_event(Asc("V"), 0, 0, 0) ' "V" キーを押す
Call Sleep(200) ' ちょっと待つ
Call keybd_event(Asc("V"), 0, KEYEVENTF_KEYUP, 0) ' "V" キーを離す
Call keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP, 0) ' Ctrl キーを離す
End Sub


表示メニュー → ツールバー → ユーザー設定

コマンドタブの分類から、「マクロ」を選択
コマンドから、「ユーザー設定ボタン」をドラッグしてツールバーの任意の位置にボタンを追加
追加したボタンをクリックすると、初回のみマクロ名を聞いてくるので
CopyPaste を選択

新規BOOKを保存

実際にコピー作業を行うブックを開いて、E5に文字を入力して
ツールバーに追加したボタンをクリック

動作としては、
現在アクティブなシートの E5 をクリップボードにコピー
[ALT]+[TAB] を押してEXCELの前にアクティブになっていたウインドウに切替
[TAB] を押す
[TAB] を押す
[CTRL]+"V" を押す

という事をしますので、事前に
自社プログラムをクリックしてアクティブにする
その後、EXCELをクリックしてマクロボタンを押せば、たぶん動作すると思います。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

読ませていただくと、なんだか出来そうな気がします。
さっそくやってみたいのですが、今、家には、エクセル2000しかありません。でも、エクセル2000でやってみました。

マクロの自動作成をして、マクロを作り、そのマクロをVisual Vasicの画面にて開いて、上の記述を貼り付ければいいんですよね?

そうすると、1行目の
Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
の文字が反転されて、
「コンパイルエラー Enc Sub、End Function または End Property 以降には、コメントのみが記述できます」というエラーメッセージウィンドウが表示されてしまいます・・・

これはエクセル2000だから悪いのでしょうか?
会社のエクセルは2003以降だと思うので、会社でやってみたらうまくいきますでしょうか?

来週、時間のある時に会社でやってみたいと思います。

また、教えてください。よろしくお願いします。 m(_ _)m

お礼日時:2009/08/08 09:26

社内専用システムがどんなものか分かりませんがエクセルのデータをコピーして貼り付けることができTabでセルを選ぶことができるとのことですから、エクセルでできているとします。


その場合には社内専用シートの中でデータを入力する場所をCtrlキーを押しながら選択します。
エクセル2003などの場合でしたら「挿入」から「名前」の「定義」で貼付専用とでも入力します。
エクセル2007などでしたら「数式」タブの「名前の定義」の名前で貼付専用とでも入力します。
別のシートでE5セルをコピーしたのちに社内専用シートに移って、名前ボックスから「貼付専用」を選択することで、複数のセルが同時に選択されますのでCtrl+Vで貼り付けを行うことで選択されたすべてのセルに同時に同じ値を貼り付けることができます。
    • good
    • 1
この回答へのお礼

回答ありがとうございます。

たぶんで申し訳ないのですが、社内専用システムはエクセルで出来てはいないように思います。
それから、複数のセルに同時に同じ値を貼り付けたいのではなくて、
何度も繰り返し、社内専用システムのある入力エリアにその都度違う値を貼り付けたいのです。、
質問内容の説明がうまく出来ていなくてすみませんでした m(_ _)m

お礼日時:2009/08/07 21:57

WSHでsendkeysを使えば、似たイメージのことはある程度可能です。


こちらが参考になります。
http://www.atmarkit.co.jp/fwin2k/tutor/cformwsh1 …

参考URL:http://www.atmarkit.co.jp/fwin2k/tutor/cformwsh1 …
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

参考ページを見てみましたが、私の頭では難しすぎて理解できませんでした。
すみません。m(_ _)m
 

お礼日時:2009/08/07 21:51

社内専用システムと(社内LAN)エクセルとはプログラム世界では別です。

プログラムで社内専用システムを「外から」プログラムで動かそうとしても無理。
思っても見てください、出来る(と仮定すると)ようなことなら、セキュリティなんかもたまったもんじゃない。ファイルが全部書き換えられる事態もありえる。
プログラム一般に、大掛かりな仕組みを作らないと、他のプログラムを動かすのは不可能です。MSが全社挙げて、大掛かりな仕組みを作ったので、オフィス(主に個人ユース前提で)などで、VBAなどで動かせる例が有るが、普通は大変難しいことです。
コピーさえも、一般ユーザーは慣れて、当たり前の単純なようだが、裏では大変な仕組みが働いているはずです。
社内システムの作成者の許可を・助力を得ないと出来ないと思ってください。
ーー
私も社内正式システム(操作者が画面に手入力を前提)へ、別途作成データファイルを自動で、流し込みたくて、ある会社のBASICの付加機能で画面インターフェイスと言うのを使ってやった記憶がありますが(25年前)、今はそういう考えはVB系では無いようです。
それが出来ると、会社側からすると危険がいっぱいの面があります。
似たようなソフトは有るようですが。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

地道にがんばります。

お礼日時:2009/08/07 21:49

システムの作られ方がわかりませんが…



>何千回と行う作業ですので~~
作業を省力化するのは賛成ですが、現在行っている手作業の作業(エクセル→ブラウザ?)をそのまま自動化するというよりも、元のデータ→目的のファイル(またはデータべース)へと直接転記することを考えた方が良いのではないでしょうか?(データチェックなどは必要でしょうが…)

元のデータはどのようにして作成されているのか不明ですし(エクセルで手作業で作成されているものなのだろうか?)、ブラウザ(?)に入力したデータがどの様に処理されているのかも不明ですが(何かのデータベースに記録されているのか?)、始まりと終わりをダイレクトに結べれば、途中のその他の作業(あるのかないのか不明ですが)もまとめて省力化できます。

…というか、「何千回もの」作業をそれなりの頻度で行わなければならないという、元のシステムそのものを改良してもらうのが一番よさそう。
そのシステムの管理者に、相談なさるのがよろしいのではないでしょうか?
    • good
    • 1
この回答へのお礼

回答ありがとうございます。

やはり、そうですよね~

でも、あいにく私は、社内専用システムを持っている会社の仕事を委託で請け負っている会社へ派遣されて働いている立場なので、社内専用システムに働きかけることはできないようです。

私の派遣されている委託会社の上司にも言ってみましたが、なんせ委託されている仕事を言われたとおりにするのが私たちの仕事なので、無理だと言われました。(;。;)

お礼日時:2009/08/07 21:48

こんにちは。


何千回とは大変ですね。
社内専用システムがどの様なものかにもよりますが、データベースがあるはずです。そのDBとコネクトできれば容易に質問者様のしたいことは可能だと思います。
ただし、その方法は危険を伴いますので、御社のシステム管理者さんとお話された方が良いかと思います。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

私がシステム管理者の方に話ができる立場なら良いのですが、あいにく私は、社内専用システムを持っている会社の仕事を委託で請け負っている会社へ派遣されて働いている立場なので、社内専用システムに働きかけることはできないようです。(;。;)

お礼日時:2009/08/07 21:42

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!