No.6ベストアンサー
- 回答日時:
こんばんは。
私がイメージしていたものを、今作ってみました。
メモ帳で開けているものの中身を、1つずつExcelに写すというマクロです。
閉じたメモ帳、つまりテキストファイルなら別な方法があります。
標準モジュールに貼り付けてください。
//
Option Explicit
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function FindWindowEx Lib "user32.dll" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
Private Const GW_HWNDNEXT = 2
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Declare Function OpenIcon Lib "user32" (ByVal hWnd As Long) As Long
Private Declare Function GetParent Lib "user32" (ByVal hWnd As Long) As Long
Private Declare Function IsWindowVisible Lib "user32" (ByVal hWnd As Long) As Long
Private Declare Function GetWindow Lib "user32" (ByVal hWnd As Long, ByVal wCmd As Long) As Long
Private Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hWnd As Long, ByRef lpdwprocessid As Long) As Long
Private Const EM_SETSEL As Long = &HB1
Private Const WM_COPY As Long = &H301
Private Const WM_PASTE As Long = &H302
Sub GetOpenApp()
Dim Process As Variant
Dim oProcess As Object
Dim hWnd As Long
Dim hWnd_c As Long
Dim Pid As Long
Dim Ret As Long
For Each Process In _
GetObject("winmgmts:{impersonationLevel=impersonate}").ExecQuery( _
"select * from Win32_Process where Name='NOTEPAD.EXE'")
Set oProcess = Process
Pid = oProcess.ProcessID
hWnd = GetHwndFromPid(Pid)
Ret = OpenIcon(hWnd)
hWnd_c = FindWindowEx(hWnd, 0&, "Edit", vbNullString)
Call SendMessage(hWnd_c, EM_SETSEL, 0&, -1&)
Call SendMessage(hWnd_c, WM_COPY, 0&, 0&)
ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Offset(1).PasteSpecial
Next
End Sub
Private Function GetHwndFromPid(ByVal Pid As Long) As Long
Dim hWnd As Long
hWnd = FindWindow(vbNullString, vbNullString)
Do Until hWnd = 0
If GetParent(hWnd) = 0 And IsWindowVisible(hWnd) <> 0 Then
If Pid = GetPidFromHwnd(hWnd) Then
GetHwndFromPid = hWnd
Exit Do
End If
End If
hWnd = GetWindow(hWnd, GW_HWNDNEXT)
Loop
End Function
Private Function GetPidFromHwnd(ByVal hWnd As Long) As Long
Dim Pid As Long
Call GetWindowThreadProcessId(hWnd, Pid)
GetPidFromHwnd = Pid
End Function
WindFallerさん
こんばんは!!
すごいです(^^)
本当にありがとうございます。
イメージ通りですよ!!
どうやったらできるんだろう・・・と悩んでいましたので助かりました。
閉じたメモ帳と記載されてますが、閉じた状態でもエクセルに貼り付けられるんですか?
No.5
- 回答日時:
ご質問者さんは、どういう作業をしていらっしやるのか今のところはよくわからないのです。
メモ帳内の情報とはどこにあるか?
メモ帳のテキストファイルを限定しなければなりません。
「 一つ一つ開いてコピーして」というのは、実際のテキスト・ファイルを開くことなのでしょうか?
閉じたメモ帳ならなんとか解決できますが、今度は、テキストファイルを全部を対象にというわけには行かないはずです。どれを限定するとか、もう少しお話を詳しく聞かせていただかないと、実現は不可能だと思います。
また、開いているメモ帳ということになると途端に難しくなります。
それに文字コードの問題もあります。SJIS, UTF-8, UTF-16(UNICODE)
私が想像しているものなら、そんなに簡単には行きません。
一番楽なのは、やはりご質問者さんの使っている(Excelの)クリップボードを経由する方法ではないかと考えています。この自動化というのは可能ではあるのですが、VBAマクロだけで収まるとは思いません。
いずれにしても、Evernoteのようなことをしたいとおっしゃっているわけだと思います。できれば、こうしたユーティリティー・ソフトウェアをお使いになったほうが楽ではないかと思います。
No.4
- 回答日時:
>メモ帳内の情報を一つ一つ開いてコピーして・・・
手順を変えて、
1) 複数のメモ帳を1つのメモ帳にまとめて、
2) そのメモ帳を開いてエクセルに張り付ける
のではいかが?
メモ帳を開くのは1回ですみますよ
1)はメモ帳の拡張子がtxt と仮定すると、コマンドプロンプトで「copy *.txt matome.txt」とタイプすればOKです。
No.3
- 回答日時:
複数のテキストファイルをエクセルに張り付けるだけであれば、次のような操作で代用できると思います。
ただ、「テキストのこの部分をコピー」とか「XXシートのここへペースト」といったご希望は、一切無視です。「ファイル」タブの「開く」から「ファイルを開く」ウインドウで、コピーしたいファイルを複数選択(Ctrlを押しながらファイル名をクリック)して、「開く」をクリックします。
選択したファイル数分の「テキストファイルウイザード」が表示されるので、すべて「完了」をクリックします。
別々のブックになってしまいますが、問題ないですよね?(質問にも特に指定は無かったし)。もし、必要であれば、1シートにまとめるマクロを組んでみて下さい。
No.2
- 回答日時:
マクロを組めば簡単ですが・・・知識が無いと大変なことになりかねないのでやめた方がいいでしょう。
近くにExcelのマクロを組める人がいるなら相談してみてください。
私なら簡単にやる自信がありますが、さすがに最低限度の知識もない人にネット経由で教えてうまくやるほどの自信はありません。多分、プロのプログラマーでもやらないと思います。
No.1
- 回答日時:
「メモ帳内の情報を一つ一つ開いてコピー」(日本語が変?)は
"メモ帳を開いてはコピー"をメモ帳の数だけ繰り返すことですか?
YESなら、私もそうせざるを得ないと思ってます。
Excel に貼り付ける前に、複数のメモ帳を一枚に纏めておくにしても、複数のコピー操作を要するしィ~
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルからビジオのリンク貼り付け 1 2023/03/30 17:51
- Excel(エクセル) 文字化け。メモ帳でUTF-8に変換後、エクセルへ貼り付けたいです。 3 2022/08/14 07:21
- Access(アクセス) Accessのクエリの結果を、既存のエクセルに追加したい 2 2022/07/31 22:44
- Windows 10 エクセルの罫線がパワポに貼り付けると見えなくなる。 3 2022/12/27 15:23
- Excel(エクセル) EXCELマクロでandroidタブレットから取りんだJPEGファイルをうまくセルに貼り付けられない 2 2022/07/31 15:03
- その他(Microsoft Office) EXCEL2007 右クリックに「値を貼り付け」がない プライベートのパソコンを購入し(window 3 2022/04/13 23:10
- Excel(エクセル) ExcelVBA メモ帳を起動し名前を付けて指定フォルダに保存 2 2022/04/18 13:15
- Visual Basic(VBA) VBA初心者です。電話番号の数字の前に0を表示させたいです。 2 2022/12/14 03:58
- 教育学 エクセルで小数点以下を四捨五入について教えてください。 2 2023/04/05 17:33
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/07/04 17:58
このQ&Aを見た人はこんなQ&Aも見ています
-
「環境が人を育てる」って本当?環境によって人格や生き方は本当に変わるのか
環境が人生に与える影響は実際どれほどのものなのか、専門家の田宮由美さんに伺った。
-
同一フォルダにある複数のテキストファイル(メモ帳)を一括でエクセルに取り込みたいです。
Visual Basic(VBA)
-
複数のテキストファイルをエクセルに一括で取り込みたい
Excel(エクセル)
-
マクロを使ってフォルダー内にあるtxtデータをエクセルにデータに変換する方法をご教授願います
Excel(エクセル)
-
-
4
メモ帳からエクセルに貼り付ける方法
Windows Vista・XP
-
5
複数のテキストファイルをexcelでそれぞれ別シートに書き出したい
Excel(エクセル)
-
6
複数のテキストファイルを一括でエクセルに取り込みたい。
Excel(エクセル)
-
7
メモ帳(テキストデータ)をExcelにセルに分けて貼り付ける方法は?
Excel(エクセル)
-
8
特定フォルダ内のテキストファイルの内容を全てエクセルに書き出す方法
Visual Basic(VBA)
-
9
同じ作業を複数のシートに実行させるにはどうしたらいいのでしょうか
Visual Basic(VBA)
-
10
セル入力文字が、「右のセルにはみ出す場合と」「はみ出さない場合」の違い
Excel(エクセル)
-
11
ExcelVBA メモ帳を起動し名前を付けて指定フォルダに保存
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「筆記用具」という言葉はノー...
-
Excel:任意の列だけCSV形式で...
-
CD-Rにマジックで書いた文字...
-
CDやDVDに書くマジックペン
-
教科書などに初めから書いてあ...
-
VBAでメモ帳にコピペをしたいの...
-
メモ帳のテキストがいつのまに...
-
Windows10で、拡張子が.pyのフ...
-
赤い字で。人の名前を書くと死...
-
ぺたろうの代わりが欲しい パソ...
-
ウィンドウ11 メモ帳が文字化...
-
職場でもらったメモ、付箋をそ...
-
「覚書」、「メモ」、「備忘録...
-
Wordで 文字の一部にモザイクを...
-
消しゴムがくっついて、跡が取...
-
書いたり消したりできるラミネ...
-
テプラのテープカートリッジを...
-
フリクションペンで書いたもの...
-
指を動かす人・・・。
-
PrintScreenキーが効かなくなり...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
教科書などに初めから書いてあ...
-
水泳帽の学年書き直し
-
「筆記用具」という言葉はノー...
-
メモ帳のテキストがいつのまに...
-
Excel:任意の列だけCSV形式で...
-
日頃、感じる不便なものってあ...
-
消しゴムがくっついて、跡が取...
-
Windows10で、拡張子が.pyのフ...
-
書いたり消したりできるラミネ...
-
「覚書」、「メモ」、「備忘録...
-
スイミングのゴーグルに名前を...
-
指を動かす人・・・。
-
くっついた消しゴムかすをとる...
-
Wordで 文字の一部にモザイクを...
-
ヨドバシドットコムも置き配し...
-
プロジェクタだと動画が映らない
-
VBAでメモ帳にコピペをしたいの...
-
他者の手首切断の夢ってどうい...
-
ウィンドウ11 メモ帳が文字化...
-
小6でこの絵上手いですか? ア...
おすすめ情報