• 締切済み

社内専用システムへエクセルのデータを貼り付けたい

nak777rの回答

  • nak777r
  • ベストアンサー率36% (49/136)
回答No.6

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をクリックしてマクロボタンを押せば、たぶん動作すると思います。

mako27mako
質問者

お礼

回答ありがとうございます。 読ませていただくと、なんだか出来そうな気がします。 さっそくやってみたいのですが、今、家には、エクセル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

関連するQ&A

  • エクセルのデータを自動的にWebに入れるには?

    いつもお世話になっています。 エクセルのデータをホームページに入れる時、決まった動作の繰り返しをするので、これを自動化することは出来ないでしょうか?VBAだとエクセル内部でしか出来ないのではないでしょうか? こういう操作です。 エクセルの場面でセルをCtrl+Cでコピーして、リターンキーを押して(セルが次のセルへ飛ぶ)、Alt+TabでWeb画面へ移動して、Ctrl+VでWebにエクセルの数値を貼り付けて、Tabキーを数回(回数は一定)押して次の入力欄へ移動させて、Alt+Tabでエクセル画面へ戻って、またCtrl+Cでコピー。 この繰り返しでエクセルの数値をWeb画面に入力するのです。このような定型的な動作はコンピューターが得意とするはずですが、VBAでは実現できない(と思う・・。エクセルの外部にまで操作出来るのでしょうか?)。 何か方法があるはずですが、ご存知の方がいらっしゃればよろしくお願いしたします。

  • 転記作業を自動化できないか

    こんな作業を自動化・高速化できないでしょうか。 ある入力フォームについて、Excelデータから転記する作業をしています。その入力フォームには縦横に入力用テキストボックスが並んでいるわけですが、横方向の入力をする場合 ExcelファイルのA1セルをコピー(Ctrl+C) → 入力フォームをアクティブに(Alt+Tab) → 貼付け(Ctrl+V) → Excelをアクティブに(Alt+Tab) → ExcelのB1セルへ移動(Tab)してコピー(Ctrl+C) → 入力フォームをアクティブに(Alt+Tab) → 次のテキストボックスへ移動(Tab)して貼付け(Ctrl+V) ・・・というのを繰り返してやっています。非常に単純な機械的繰り返し作業なので、なんとか自動化できないでしょうか。 ちなみにA1セル~B1セルを一度にコピーしてテキストボックスに貼付けても、2つのテキストボックスに一度に貼付けられたりはせず、1つのテキストボックスにしか貼付きません。また、データの自動取込み機能などは、その入力フォームにはありません。

  • エクセルの「読み取り専用」について

    知り合いの作った、エクセルの表を開こうとすると、読み取り専用で開くか、普通に開くかの選択画面が出てきます。うざったいので、これが出てこないで普通に開ける方法を教えて下さい。

  • 社内システムへの入力を簡素化するツールを作りたい

    質問です 在庫管理する社内システムの入力を簡素化したいのです 数値を入力する箇所は3箇所くらいなんですが仕様書1枚ごとに支店名や部署を選択したり 入力数値も自分で計算するという方法を取ってます これが毎日30枚程度あるので思いのほか時間を取ってしまいます 社内システムなので勝手にいじることはできませんが そのシステムの3箇所に数値を入力し、支店名や部署は自動で選択するツールは簡単に作れないものでしょうか?

  • OCRシステムを利用したデータ取り込みについて

    会社の自社システムへのデータ入力作業が膨大で非常に大きな作業負荷になっています。入力手順としては券面上にかいてある情報(英数字)を自社システムのデータ入力画面に打ち込んでいます。スキャナを利用したOCRというソフトで券面上の文字を文字データとして取り込めるという話を聞いたのですが、ワード・エクセル等のoffice製品ではなく自社システムのデータベース画面に取り込めるようなソフトもあるのでしょうか?ご存知でしたら教えていただけると幸いです。

  • エクセルのマクロで他のシステムを動かせますか?

    エクセルのマクロで他のシステムを動かせるのか知りたいのですが、どなたか教えていただけませんでしょうか? 私は事務仕事をしています。仕事のひとつにデータの入力作業という仕事があります。これは会社が昔から使っているシステムのデータをエクセルに打ち直すという作業です。ひたすらコピーをする作業なのですが、毎日3時間くらい行うのでとてもしんどいです。 そのデータ入力作業を自動で行えないかと思いあれこれ調べていたところ「マクロ」というキーワードをみつけました。このマクロを使って他のシステムのデータをエクセルにコピペする作業は可能でしょうか?

  • EXCELのデータをACCESSに貼り付ける方法

    エクセル表のある部分のデータをコピーして、ACCESSのテーブルに貼付けたいのですが、インポートやエクスポートなど面倒な作業ではなく、<Ctrl+C>+<Ctrl+V>で簡単に行いたいと思っております。ACCESSからエクセルへはコピーペーストできるのですが…。以前、同じような質問を見かけた気がするのですが、探し出せませんでした。どなたかお教え下さい。

  • EXCEL(エクセル)のデータをWebフォームへ入力

    エクセルの行(複数セル)に入力したデータがあります。 この複数セルの選択した部分を、Webフォームのテキスト入力欄へ連続して入力したいです。 (入力 → Tab → 入力 → Tab → 繰り返し… のような) エクセルシート A列    B列    C列    D列    E列      【りんご   みかん   もも】←セルの選択範囲 Webフォーム テキスト入力欄1[りんご] テキスト入力欄2[みかん] テキスト入力欄3[もも] Webフォーム上にはいくつものテキスト入力欄があり、点滅カーソルのある入力欄からペーストを開始したいです。 また、エクセルで参照するデータも何種類もあり数が変動しますので、決まったセル範囲ではなく、その都度アクティブセルを指定したいです。(行は1行です。) 以上のようなことはマクロで可能でしょうか? マクロに詳しくないので、実現可能なコードを教えていただけると、大変助かります。 どなたかお詳しい方、よろしくお願い致します。

  • access:連続データ入力

    いつも助かってます。 accessのテーブルで200件位のレコードに同じデータを入力したいのですがどうすれば良いのでしょうか。 実際このテーブルは500レコード位持っています。 エクセルみたいにマウスで選択してctrl+↓でぴゃーっとコピーされる。。みたいなことは出来ないだろか。 よろしくお願いします。

  • 連続データの作成(E)が選択出来ません。どうすれば !

    エクセルのオートフィル機能:連続データの作成 について、教えてください。 エクセルに数値を入力する作業をしています。 毎回、与えられたエクセルファイルの指定された一つの列に、数値を入力してゆく作業です。 例えば、1 2 3 ・・・ 100 といった連続したデータを入力する際、つい、昨日までは、最初のセルに1を入力した後、そのセルの右下から、マウスの右をおさえた状態で下へドラッグし、「連続データ(E)」というのを選び、100までのデータを取得していました。 ところが、今日与えられたエクセルファイルだと、出来ないのです。 つまり、先ほどの例で言うと、1を入力したセルの右下からマウス右をおさえたままドラッグしても、「連続データ(E)」というのが薄いグレー文字のままで、選択不可能なのです。 どうすれば、昨日までのように出来るのでしょうか? 初心者ですが、どうぞ、よろしくお願いします。