![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
No.4ベストアンサー
- 回答日時:
No.3です。
sample4,sample5,sample6で
>Set excel1 = New Excel.Application
>Set excel2 = New Excel.Application
の後に
excel1.Visible = True
excel2.Visible = True
を入れてください。
>プログラムは、スポーツ吹矢の大会(50~80名参加)で得点結果と順位をプロジェクターで表示するものです。
>プライマリーディスプレイは、得点の入力と順位を計算します。
>セカンダリーディスプレイは、プロジェクターでの表示用で指定した時間間隔で画面をスクロールさせます。
適当なシートにコントロールツールボックスのコマンドボタン(CommandButton1,CommandButton2,CommandButton3)を作って、そのシートのvba部に以下をコピーしてください。
Dim excel As New excel.Application
Dim displaySheet As Worksheet
'Excel起動
Private Sub CommandButton1_Click()
If excel.Workbooks.Count <> 0 Then
MsgBox "すでに起動しています"
Exit Sub
End If
'表示用Excelの起動と位置指定
With excel
.Top = 0
.Left = 600
.Width = 500
.Height = 500
.Visible = True
.Workbooks.Add
Set displaySheet = .ActiveWorkbook.ActiveSheet
End With
ThisWorkbook.ActiveSheet.Select 'フォーカスを戻しておく
End Sub
'Excel終了
Private Sub CommandButton2_Click()
If excel.Workbooks.Count = 0 Then
MsgBox "起動していません"
Exit Sub
End If
displaySheet.Parent.Close False
excel.Quit
End Sub
'データ転送(A1:C3範囲)
Private Sub CommandButton3_Click()
If excel.Workbooks.Count = 0 Then
MsgBox "起動していません"
Exit Sub
End If
displaySheet.Range("A1:C3").Value = Range("A1:C3").Value
End Sub
有難うございました。うまく表示され、マルチディスプレイもうまく行きました。これで何とかソフトが完成しそうです。本当にありがとうございました。
No.3
- 回答日時:
どんなプログラムでしょうか?
たとえ別プロセスでもコピーできると思います。
どうしてもできないのがsample4ですが、後は相手の指定が不完全な場合だと思います。
マルチディスプレイはたぶん関係無いとは思います。
同じプロセス間で書式も含めてコピー。
Sub sample1()
Dim book1 As Workbook
Dim book2 As Workbook
Set book1 = Workbooks.Add
Set book2 = Workbooks.Add
book1.Sheets(1).Range("A1").Value = "123"
book1.Sheets(1).Range("A1").Copy book2.Sheets(1).Range("A1")
MsgBox book2.Sheets(1).Range("A1").Value
book1.Close False
book2.Close False
End Sub
同じプロセス間で値をコピー。
Sub sample2()
Dim book1 As Workbook
Dim book2 As Workbook
Set book1 = Workbooks.Add
Set book2 = Workbooks.Add
book1.Sheets(1).Range("A1").Value = "123"
book2.Sheets(1).Range("A1").Value = book1.Sheets(1).Range("A1").Value
MsgBox book2.Sheets(1).Range("A1").Value
book1.Close False
book2.Close False
End Sub
同じプロセス間でクリップボード経由でコピー。
Sub sample3()
Dim book1 As Workbook
Dim book2 As Workbook
Set book1 = Workbooks.Add
Set book2 = Workbooks.Add
book1.Sheets(1).Range("A1").Value = "123"
book1.Sheets(1).Range("A1").Copy
book2.Sheets(1).Paste Destination:=Range("A1")
MsgBox book2.Sheets(1).Range("A1").Value
book1.Close False
book2.Close False
End Sub
別プロセス間で書式も含めてコピー。
Sub sample4()
Dim excel1 As Excel.Application
Dim excel2 As Excel.Application
Dim book1 As Workbook
Dim book2 As Workbook
Set excel1 = New Excel.Application
Set excel2 = New Excel.Application
Set book1 = excel1.Workbooks.Add
Set book2 = excel2.Workbooks.Add
book1.Sheets(1).Range("A1").Value = "123"
book1.Sheets(1).Range("A1").Copy book2.Sheets(1).Range("A1")
MsgBox book2.Sheets(1).Range("A1").Value
book1.Close False
book2.Close False
End Sub
別プロセス間で値をコピー。
Sub sample5()
Dim excel1 As Excel.Application
Dim excel2 As Excel.Application
Dim book1 As Workbook
Dim book2 As Workbook
Set excel1 = New Excel.Application
Set excel2 = New Excel.Application
Set book1 = excel1.Workbooks.Add
Set book2 = excel2.Workbooks.Add
book1.Sheets(1).Range("A1").Value = "123"
book2.Sheets(1).Range("A1").Value = book1.Sheets(1).Range("A1").Value
MsgBox book2.Sheets(1).Range("A1").Value
book1.Close False
book2.Close False
End Sub
別プロセス間でクリップボード経由でコピー。
Sub sample6()
Dim excel1 As Excel.Application
Dim excel2 As Excel.Application
Dim book1 As Workbook
Dim book2 As Workbook
Set excel1 = New Excel.Application
Set excel2 = New Excel.Application
Set book1 = excel1.Workbooks.Add
Set book2 = excel2.Workbooks.Add
book1.Sheets(1).Range("A1").Value = "123"
book1.Sheets(1).Range("A1").Copy
book2.Sheets(1).Paste Destination:=book2.Sheets(1).Range("A1")
MsgBox book2.Sheets(1).Range("A1").Value
book1.Close False
book2.Close False
End Sub
この回答への補足
プログラムは、スポーツ吹矢の大会(50~80名参加)で得点結果と順位をプロジェクターで表示するものです。
プライマリーディスプレイは、得点の入力と順位を計算します。
セカンダリーディスプレイは、プロジェクターでの表示用で指定した時間間隔で画面をスクロールさせます。
この得点結果と順位を手作業でのコピー&貼り付けはできますが、できるだけ速やかに、かつ間違いの無い様にするためボタン操作で行いたい。
尚、ご回答頂いた sample6 を試してみたのですがメッセージボックスは表示しますが、book1,book2が表示されません。なぜでしょうか?
VBには不慣れのためご迷惑をおかけしますがよろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) VBA ふたつの同じ様式シートのセルをコピーしたい 2 2023/03/08 15:28
- Excel(エクセル) excelの列幅高さが勝手に変わる(特定のPCだけ) 8 2022/07/14 16:51
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/07/04 17:58
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/06/04 09:39
- Excel(エクセル) Excelからnotesメールを自動で送信出来るマクロを見つけました。 下記、URL先のマクロを使わ 1 2023/03/21 09:08
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/03/27 13:25
- Excel(エクセル) 記録マクロのみでできますか? 7 2022/08/07 20:38
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/10/11 12:55
- Visual Basic(VBA) VBA アドインについて お詳しい方 ご教授をお願いします。 相談事項 現在以下の対応を実施した所、 1 2022/11/02 16:53
- その他(ソフトウェア) LDPlayerのマクロの編集方法を知りたい 1 2023/03/04 11:46
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
拡張ディスプレイの関連でエクセルの表示がおかしくなりました
モニター・ディスプレイ
-
エクセルのマクロボタンが動かなくなった。
Excel(エクセル)
-
Excel VBAでデュアルディスプレイを使用するメリットについて
Excel(エクセル)
-
-
4
エクセルでエラーが出て困っています。
Excel(エクセル)
-
5
特定のPCだけ動作しないVBAマクロがあります。その理由は?
Visual Basic(VBA)
-
6
2画面表示でのVBAのボタン押下後のform表示の位置
Excel(エクセル)
-
7
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
8
エクセルVBAで画面の大きさを取得する方法!
Excel(エクセル)
-
9
複数モニタ使用時のフォームの表示位置してい
C言語・C++・C#
-
10
VBAで「致命的なエラー」が出ました。どのくらい致命的なんでしょうか?
Access(アクセス)
-
11
クリックイベントなのに、2回クリックしないとフォー
Access(アクセス)
-
12
UserForm1.Showでエラーになります。
工学
-
13
VBA 変数名に変数を使用したい。
Visual Basic(VBA)
-
14
UserForm
Visual Basic(VBA)
-
15
【マクロ】フォルダを2つのモニターの定位置に並べたい
Excel(エクセル)
-
16
Excel:コマンドボタンの移動
Excel(エクセル)
-
17
VBAでループ内で使う変数名を可変にできないか。
Visual Basic(VBA)
-
18
エクセルのマクロで結合セルに値を貼り付けたい
Excel(エクセル)
-
19
デュアルディスプレイ 起動画面を指定するには?
モニター・ディスプレイ
-
20
exeファイルの中身を見ることは可能ですか?
フリーソフト
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
vbscriptでエクセルを操作する
-
あなたは何も恐れる必要はない...
-
マルチディスプレイを使用して...
-
VBscriptでEXCELを起動
-
エクセルのマクロについて教え...
-
エクセルで複数のシートのクリ...
-
Worksheets メソッドは失敗しま...
-
Alt+Shift+↑を一括で行うには、...
-
マクロの「SaveAs」でエラーが...
-
エクセルで特定の文字列が入っ...
-
「段」と「行」の違いがよくわ...
-
エクセル2016で時間を入力して...
-
Excel VBAでのWorksheet_Change...
-
VBAマクロ実行時エラーの修正に...
-
B列の最終行までA列をオート...
-
VBAで色の付いているセルの行削除
-
LEFT関数とIF関数の組み合わせ...
-
特定の色のついたセルを削除
-
VLOOKUPの列番号の最大は?
-
エクセル マクロ オートフィ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
マルチディスプレイを使用して...
-
VBscriptでEXCELを起動
-
VBでexcelのプレビュー画面表示
-
あなたは何も恐れる必要はない...
-
VB.NET Excelの解放
-
vbscriptでエクセルを操作する
-
エクセルのセルに・・・。
-
フィルタ係数から特性を求める...
-
VB.NETでエクセル操作
-
beep音を変えたい
-
エクセルグラフがピクチャボッ...
-
powershellスクリプトで出力し...
-
VBAマクロ実行時エラーの修正に...
-
エクセル マクロ オートフィ...
-
VBA シートをコピーする際に Co...
-
Worksheets メソッドは失敗しま...
-
エクセルで複数のシートのクリ...
-
エクセルで特定の文字列が入っ...
-
Excelで、あるセルの値に応じて...
-
あああ..ああい..ああう とい...
おすすめ情報