!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
ExcelのVBAに関する質問スレです
コード書き込みや作成依頼もOK
※前スレ
Excel VBA 質問スレ Part58
https://mevius.5ch.net/test/read.cgi/tech/1542577644/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
探検
Excel VBA 質問スレ Part59
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ d2a3-A3MQ)
2019/02/09(土) 15:12:30.70ID:3lTArmdf0262デフォルトの名無しさん (ワッチョイ 5fe7-dKms)
2019/02/17(日) 19:56:59.16ID:9z/u7JpJ0 「ちょっと違うんだなあ 」は草
263デフォルトの名無しさん (ワッチョイ 475f-Zj1S)
2019/02/17(日) 20:15:00.10ID:jhLaQWBk0 >>261
君面白いねえ
君面白いねえ
264デフォルトの名無しさん (ワッチョイ c701-mnSR)
2019/02/17(日) 20:26:28.38ID:l7X7saNL0 >>261
Sheet1.Select
Sheet1.Select
265デフォルトの名無しさん (ワッチョイ a7da-cT+3)
2019/02/17(日) 20:36:24.20ID:EkiBf8gr0 >>261
これでtestって出ない?
[シート1]
Sub ButtonClear_Click()
MsgBox "test"
End Sub
[シート2か標準モジュール]
Sub ButtonClear_Click()
Sheet1.ButtonClear_Click
End Sub
これでtestって出ない?
[シート1]
Sub ButtonClear_Click()
MsgBox "test"
End Sub
[シート2か標準モジュール]
Sub ButtonClear_Click()
Sheet1.ButtonClear_Click
End Sub
266デフォルトの名無しさん (ワッチョイ 87b5-5sVJ)
2019/02/17(日) 20:39:08.27ID:Rm6p2g7t0 >>264-265
sheet1.Selectをしなくても、セルへの代入だけなら出来た.。 シート2のボタンを押しても、シート1のセルに書き込まれる
でも、Cells(10,10).Selectみたいなセルの選択をするときは、sheet1.selectをしておかないとエラーになる
sheet1.Selectをしなくても、セルへの代入だけなら出来た.。 シート2のボタンを押しても、シート1のセルに書き込まれる
でも、Cells(10,10).Selectみたいなセルの選択をするときは、sheet1.selectをしておかないとエラーになる
267デフォルトの名無しさん (ワッチョイ c701-mnSR)
2019/02/17(日) 20:43:50.21ID:l7X7saNL0268デフォルトの名無しさん (ワッチョイ a7da-cT+3)
2019/02/17(日) 20:44:14.77ID:EkiBf8gr0269デフォルトの名無しさん (ワッチョイ 87b5-5sVJ)
2019/02/17(日) 20:46:06.79ID:Rm6p2g7t0270デフォルトの名無しさん (ワッチョイ c701-mnSR)
2019/02/17(日) 20:47:37.46ID:l7X7saNL0 >>269
そりゃそうでしょ
そりゃそうでしょ
271デフォルトの名無しさん (ワッチョイ c701-mnSR)
2019/02/17(日) 20:53:21.26ID:l7X7saNL0 つーかエラーメッセージ全部貼って見せて
272デフォルトの名無しさん (ワッチョイ 4769-QWHq)
2019/02/17(日) 21:43:11.83ID:de8FYcuQ0 vbaの関数ってデフォルトが参照渡しなんすね
やらかすとこだった
やらかすとこだった
273デフォルトの名無しさん (ワッチョイ 478e-TQkV)
2019/02/17(日) 21:45:56.53ID:kxT8s3Mp0 お前らオブジェクトのこと全然わかってないんだな
馬鹿ばっか
馬鹿ばっか
274デフォルトの名無しさん (ワッチョイ c701-mnSR)
2019/02/17(日) 21:57:57.43ID:l7X7saNL0 >>273
答えplz
答えplz
275デフォルトの名無しさん (アークセー Sx7b-a/B5)
2019/02/17(日) 23:04:18.50ID:t0Nzx7bGx こんなスレ見てたら頭おかしなルで
276デフォルトの名無しさん (ワッチョイ 478e-TQkV)
2019/02/17(日) 23:11:53.07ID:kxT8s3Mp0277デフォルトの名無しさん (アウアウウー Sa4b-mBMX)
2019/02/17(日) 23:38:23.26ID:vi4O111wa 言い過ぎでは?
繊細な人だったら傷付くよ
繊細な人だったら傷付くよ
278デフォルトの名無しさん (アークセー Sx7b-a/B5)
2019/02/17(日) 23:57:36.39ID:t0Nzx7bGx シート1内外から呼べるPublicな共通関数を作って、クリックイベントハンドラのコードと他モジュールのコードの双方から呼ぶようにすれば良いだけでは
イベントハンドラを直接コードユーザにコールさせようとするのはおかしい
イベントハンドラを直接コードユーザにコールさせようとするのはおかしい
279デフォルトの名無しさん (ワッチョイ bf8c-O/Qv)
2019/02/18(月) 00:01:45.68ID:WfgOED4y0280デフォルトの名無しさん (アウアウウー Sa4b-mBMX)
2019/02/18(月) 00:02:49.20ID:5bMGA+jIa いやよく考えるとイベントハンドラを呼ぶのはおかしいがシート2クラスのメソッドを呼ぶだけなら別におかしくはなかった
それだけでは共通化する理由にはならない
それだけでは共通化する理由にはならない
281デフォルトの名無しさん (ワッチョイ c701-mnSR)
2019/02/18(月) 00:59:55.76ID:hC76sm/R0282デフォルトの名無しさん (ワッチョイ c701-mnSR)
2019/02/18(月) 01:23:07.51ID:hC76sm/R0 シートモジュールに構造体宣言してハマった記憶がある
そういうことだったのか
そういうことだったのか
283デフォルトの名無しさん (ワッチョイ a761-9BuZ)
2019/02/18(月) 01:23:55.49ID:5t9ctY5m0 頭が悪い 顔が悪い 目が悪い 口が悪い
性格も悪い 手癖も悪い 足腰も最近悪い
酒癖も悪い 女癖も悪い 寝つきも悪い
そんな俺でもその返事の仕方は失礼なんじゃないかな?
とは思うけど。
もしや高度なツンデレさんなのかな?
と、解釈して
次の方 ( ゚д゚)ノどうぞ
性格も悪い 手癖も悪い 足腰も最近悪い
酒癖も悪い 女癖も悪い 寝つきも悪い
そんな俺でもその返事の仕方は失礼なんじゃないかな?
とは思うけど。
もしや高度なツンデレさんなのかな?
と、解釈して
次の方 ( ゚д゚)ノどうぞ
284デフォルトの名無しさん (ワッチョイ c701-mnSR)
2019/02/18(月) 06:33:10.39ID:hC76sm/R0 きっと彼の親はVBAに殺されてしまったんだよ
285デフォルトの名無しさん (アークセー Sx7b-a/B5)
2019/02/18(月) 08:08:58.79ID:MgpZvmd8x シートもオブジェクトなのか、ってのはちょっと驚いたな
シートどころか自作フォームも含めてGUIで見て触れるもののほぼすべてがオブジェクトだぞ
シートどころか自作フォームも含めてGUIで見て触れるもののほぼすべてがオブジェクトだぞ
286デフォルトの名無しさん (ワッチョイ 8788-5sVJ)
2019/02/18(月) 08:18:13.27ID:8se8rGxR0287デフォルトの名無しさん (ワッチョイ ff6f-DcjB)
2019/02/18(月) 08:58:38.38ID:AsxIQPE70 前にやってたユーザサポート業務を思い出した
288デフォルトの名無しさん (スプッッ Sdff-isAZ)
2019/02/18(月) 12:38:44.05ID:UyrImbcld >>286
バカはお前。
そのセルのセレクトができないと言ってる元の命令がオブジェクトがどういう階層になってるか分かってない典型的な例。
そういう人のコードだから、セレクトなんて必要無いだろうなと先読みしてるんだろう。
何しろセレクトすることなんて極めて殆ど書くことが無い(必要となることが無い)処理だからな。
バカはお前。
そのセルのセレクトができないと言ってる元の命令がオブジェクトがどういう階層になってるか分かってない典型的な例。
そういう人のコードだから、セレクトなんて必要無いだろうなと先読みしてるんだろう。
何しろセレクトすることなんて極めて殆ど書くことが無い(必要となることが無い)処理だからな。
289デフォルトの名無しさん (ワッチョイ e7ce-1ffV)
2019/02/18(月) 13:13:11.83ID:qW3BE+Gz0 ブックもシートもセルもボタンもシェイプもみんなオブジェクトだよ
WindowsはOSそのものがオブジェクトの塊
そういうふうに設計されてる
WindowsはOSそのものがオブジェクトの塊
そういうふうに設計されてる
290デフォルトの名無しさん (ブーイモ MMcb-O/Qv)
2019/02/18(月) 13:49:41.69ID:uzxEynMwM Selectionはイミィディエイトからはよく使う
291デフォルトの名無しさん (ワッチョイ ff7c-wP4P)
2019/02/18(月) 16:12:57.29ID:JTiYKdtz0 化石観たいな臭いレスでも良いけど
もうちょっと面白いレスが観たいな
VBAネタもう飽きた
もうちょっと面白いレスが観たいな
VBAネタもう飽きた
292デフォルトの名無しさん (ワッチョイ a7e3-dCfb)
2019/02/18(月) 16:21:45.06ID:luqjRhnP0 https://japan.cnet.com/article/20087747/
「Microsoftにとって、(Officeのような)ウェブベースのアプリケーションサービス
を提供することは願ってもないことだろう。これにより、エンドユーザーや違法コピー
の問題をもっとしっかりコントロールできるようになる。しかも、大量にメディアを
用意したり、それを流通させるコストも不要になる」
--Garcia on Slashdot
「Microsoftにとって、(Officeのような)ウェブベースのアプリケーションサービス
を提供することは願ってもないことだろう。これにより、エンドユーザーや違法コピー
の問題をもっとしっかりコントロールできるようになる。しかも、大量にメディアを
用意したり、それを流通させるコストも不要になる」
--Garcia on Slashdot
293デフォルトの名無しさん (ワッチョイ a761-dCfb)
2019/02/18(月) 16:23:02.33ID:L3SsO4kg0294デフォルトの名無しさん (ワッチョイ e7e6-Ayov)
2019/02/18(月) 17:39:58.04ID:xGyDNRFK0 VBAスレにまで来てVBAネタ飽きたって、こんなとこくる暇があったら病院行った方が良いんちゃう?
295デフォルトの名無しさん (ワッチョイ 4769-QWHq)
2019/02/18(月) 21:13:51.18ID:25ajLZ330 vbaおそすぎい…
296デフォルトの名無しさん (アークセー Sx7b-a/B5)
2019/02/18(月) 21:25:29.27ID:Y1NxofRZx Selectメソッドは記録マクロの記述のためだけに存在する命令と言ってもいいくらいのものだからな
実際に実務でSelectメソッドを書いたことは殆どない
特定のセル範囲(特に複数セル)が選択された状態を作り出すことに実務上の意味があるならば書かざるを得ないんだろうけど
実際に実務でSelectメソッドを書いたことは殆どない
特定のセル範囲(特に複数セル)が選択された状態を作り出すことに実務上の意味があるならば書かざるを得ないんだろうけど
297デフォルトの名無しさん (ワッチョイ a7e6-yQ/S)
2019/02/18(月) 21:53:14.97ID:eiV6jRN10 どうしてセレクチオンしないの〜!
298デフォルトの名無しさん (ワッチョイ 2735-cT+3)
2019/02/18(月) 22:15:32.75ID:aFs+DxuY0299デフォルトの名無しさん (ワッチョイ a7da-cT+3)
2019/02/18(月) 22:31:21.38ID:R8eupock0 カーソル位置の初期化によく使うけどな。Select
300デフォルトの名無しさん (オッペケ Sr7b-GpPJ)
2019/02/18(月) 22:37:53.94ID:hG18nYywr application.gotoを使う
301デフォルトの名無しさん (アークセー Sx7b-a/B5)
2019/02/18(月) 22:51:42.46ID:Y1NxofRZx スクロールの有無を選べるApplication.Gotoの方が小回りが効くわな
302デフォルトの名無しさん (ワッチョイ c701-mnSR)
2019/02/18(月) 23:52:49.47ID:hC76sm/R0 SelectよりActivateの方がしっくりくる
303デフォルトの名無しさん (ワッチョイ 7fdd-/KMh)
2019/02/19(火) 00:02:24.54ID:mTnWFuG30 >>302
違いってなんだっけ?
違いってなんだっけ?
304デフォルトの名無しさん (ワッチョイ 2735-cT+3)
2019/02/19(火) 00:21:46.10ID:XTzrMDQC0 selectは複数できる
acrivateは1つだけ
selectしたcellsはselectionで取得でき、
activateしたセルはActiveCell
また、
ActiveCellはsheetではなくapplicationのメンバ
Application.ActiveCell.Select
↓はできない
sheets(1).activeCell.Select
今色々試しただけだから、間違ってたらゴメン
acrivateは1つだけ
selectしたcellsはselectionで取得でき、
activateしたセルはActiveCell
また、
ActiveCellはsheetではなくapplicationのメンバ
Application.ActiveCell.Select
↓はできない
sheets(1).activeCell.Select
今色々試しただけだから、間違ってたらゴメン
305デフォルトの名無しさん (ワッチョイ 5fea-/KMh)
2019/02/19(火) 08:36:38.55ID:9CovpibD0 >>304
Oh,thx.
Oh,thx.
306デフォルトの名無しさん (ブーイモ MM6b-blJ9)
2019/02/19(火) 11:46:22.25ID:9gUKp59aM WebBrowserのフォームに文字列変数に入れたHTMLを反映させるのってどうすれば良いですか?
307デフォルトの名無しさん (スプッッ Sdff-isAZ)
2019/02/19(火) 12:39:59.48ID:oemf1bOsd >>306
説明が分かりにくい。
WebBrowserのフォーム
→フォームにWebBrowserコントロールを貼り付けたもの?
文字列変数に入れたHTML
→指定したURL?
フォ―ムにWebBrowserコントロール貼り付けて、指定したURLを表示させたいってこと?
説明が分かりにくい。
WebBrowserのフォーム
→フォームにWebBrowserコントロールを貼り付けたもの?
文字列変数に入れたHTML
→指定したURL?
フォ―ムにWebBrowserコントロール貼り付けて、指定したURLを表示させたいってこと?
308デフォルトの名無しさん (スプッッ Sdff-isAZ)
2019/02/19(火) 12:42:06.27ID:oemf1bOsd それともHTMLのソースコードを元にブラウザ表示させたいってこと?
309デフォルトの名無しさん (ワッチョイ 2735-cT+3)
2019/02/19(火) 13:02:37.15ID:XTzrMDQC0 >>306
input type="text"を変更したいんでしょ
メールアドレスに「123」を入れる例
めっちゃめんどくさいけどガンバレ
Private Sub UserForm_Activate()
WebBrowser1.Navigate ("https://opentype.jp/oteditmoney.htm")
End Sub
Private Sub UserForm_click()
Set hec = WebBrowser1.Document
Set mailaddress = hec.GetElementsByName("MailAdress2").Item(0)
mailaddress.Value = 123
End Sub
input type="text"を変更したいんでしょ
メールアドレスに「123」を入れる例
めっちゃめんどくさいけどガンバレ
Private Sub UserForm_Activate()
WebBrowser1.Navigate ("https://opentype.jp/oteditmoney.htm")
End Sub
Private Sub UserForm_click()
Set hec = WebBrowser1.Document
Set mailaddress = hec.GetElementsByName("MailAdress2").Item(0)
mailaddress.Value = 123
End Sub
310デフォルトの名無しさん (JP 0H4f-mnSR)
2019/02/19(火) 13:06:28.07ID:DYfM7cdrH 質問じゃないけどcsv取り込みでQueryTable使ったら感動した
ググるとほとんどLine Inputでやってるんだもんなぁ
ググるとほとんどLine Inputでやってるんだもんなぁ
311デフォルトの名無しさん (アウアウウー Sa4b-Ayov)
2019/02/19(火) 13:10:41.92ID:mzDqOD0La ExcelでJavaScriptが使えるみたいだけど、どんなことに使えるのでしょうか?
312デフォルトの名無しさん (ワッチョイ 2735-cT+3)
2019/02/19(火) 13:21:57.84ID:XTzrMDQC0313デフォルトの名無しさん (アウアウウー Sa4b-Ayov)
2019/02/19(火) 13:30:09.72ID:mzDqOD0La314デフォルトの名無しさん (ワッチョイ 8702-5sVJ)
2019/02/19(火) 13:35:17.78ID:XJA9DtkM0 >>296
広範囲のソートとかどうすんの?
広範囲のソートとかどうすんの?
315デフォルトの名無しさん (ワッチョイ 2735-cT+3)
2019/02/19(火) 13:44:22.98ID:XTzrMDQC0 >>313
幾つか忘れていた
jsのメリット
・jsはwebでも標準的な言語
・イラレのスクリプトもjsで動かす事もできる。ほとんど使わないけど
・googleSpreadsheetのマクロはjs
ただ、化石言語にもいいところはある。今までのノウハウがweb上に山程ある
そして仕様変更も20年なかったから、全コードがそのまま使える
(他の言語はバージョン違いでエラーが発生したり、全く動かなかったりする)
結局やることはエクセルのスクリプトなので、vbaでも十分ちゃ十分、
jsのノウハウが積み上がるまでは、vbaの方が楽出来ると思う
幾つか忘れていた
jsのメリット
・jsはwebでも標準的な言語
・イラレのスクリプトもjsで動かす事もできる。ほとんど使わないけど
・googleSpreadsheetのマクロはjs
ただ、化石言語にもいいところはある。今までのノウハウがweb上に山程ある
そして仕様変更も20年なかったから、全コードがそのまま使える
(他の言語はバージョン違いでエラーが発生したり、全く動かなかったりする)
結局やることはエクセルのスクリプトなので、vbaでも十分ちゃ十分、
jsのノウハウが積み上がるまでは、vbaの方が楽出来ると思う
316デフォルトの名無しさん (アウアウウー Sa4b-Ayov)
2019/02/19(火) 13:55:09.79ID:mzDqOD0La >>315
なるほどなるほど。
詳しく説明してくれてありがとう!
たしかにvbaは歴史があるから、調べてるのは楽だよね。
JavaScriptはしばらく家で勉強した方が良さそうだねw
時期をみて上司に提案してみるよ!
なるほどなるほど。
詳しく説明してくれてありがとう!
たしかにvbaは歴史があるから、調べてるのは楽だよね。
JavaScriptはしばらく家で勉強した方が良さそうだねw
時期をみて上司に提案してみるよ!
317デフォルトの名無しさん (アウアウウー Sa4b-nFDO)
2019/02/19(火) 14:12:13.94ID:yAUMSA3na Java script は
VBA → VB.Net → ASP.net って勉強して行く過程で勉強することになるから
そんなに慌てなくてもいいよ
VBA → VB.Net → ASP.net って勉強して行く過程で勉強することになるから
そんなに慌てなくてもいいよ
318デフォルトの名無しさん (ドコグロ MM1f-ngFe)
2019/02/19(火) 14:15:00.77ID:D8b3v+FoM >>317
ドヤ顔のところ申し訳ないけど、ASP.NET(最新のものではなくVBerが知っている方のASP.NET)も化石だよ
ドヤ顔のところ申し訳ないけど、ASP.NET(最新のものではなくVBerが知っている方のASP.NET)も化石だよ
319デフォルトの名無しさん (ドコグロ MM1f-ngFe)
2019/02/19(火) 14:16:57.12ID:D8b3v+FoM ちなみに最新のASP.NETと呼ばれるものはVBer達がよく知っているASP.NETとは全く互換性がない
それどころか.NET Frameworkすら切り捨てた
それどころか.NET Frameworkすら切り捨てた
320デフォルトの名無しさん (ワッチョイ 2735-cT+3)
2019/02/19(火) 14:24:40.78ID:XTzrMDQC0 >>319
知らなかった、昔のASP.NETの印象しかない。名前が完全に足引っ張ってる
知らなかった、昔のASP.NETの印象しかない。名前が完全に足引っ張ってる
321デフォルトの名無しさん (ブーイモ MM6b-blJ9)
2019/02/19(火) 15:20:23.15ID:oSkNfL9QM322デフォルトの名無しさん (ワッチョイ 2735-cT+3)
2019/02/19(火) 15:44:15.07ID:XTzrMDQC0 >>321
かなりめんどくさいことをしている気がする
やりたい事はこれじゃないんじゃないか
Private Sub UserForm_activate()
'多分一回呼ばないとダメ
WebBrowser1.Navigate ("https://example.com")
End Sub
Private Sub UserForm_Click()
html = "<div>foo</div>"
WebBrowser1.Document.body.InnerHtml = html
End Sub
かなりめんどくさいことをしている気がする
やりたい事はこれじゃないんじゃないか
Private Sub UserForm_activate()
'多分一回呼ばないとダメ
WebBrowser1.Navigate ("https://example.com")
End Sub
Private Sub UserForm_Click()
html = "<div>foo</div>"
WebBrowser1.Document.body.InnerHtml = html
End Sub
323デフォルトの名無しさん (ワッチョイ 8702-5sVJ)
2019/02/19(火) 16:06:51.67ID:XJA9DtkM0 四角の領域を表す構造体にRECTというのがありますが、領域が10個あってしかも定数です
その中にあるポイントがあるかどうかを判断するのに、 PtInRectを使いますが、10個のRECT領域をどうやって
定義するのか考えています
Dim rect1 as RECT, rect2 as RECT ,,,,, rect10 as RECT
とやって、これらに定数を代入するときにいちいち
rect1.Top = 10
rect1.Left =10
---
rect10.Bottom = 1000
rect10.Right = 1970
とかやってたら大変です。 Cとかなら
rect1 = CRect( 10,10,100,100)
って出来ますが、VBAでは出来ませんか。 またやりたいのは、PtInRectなので、簡単に
if PtInRect( CRect( 10,10,100,100), x,y) <> 0 then
みたいにしたいのですが、どうしたら一番スマートに出来るでしょう?
その中にあるポイントがあるかどうかを判断するのに、 PtInRectを使いますが、10個のRECT領域をどうやって
定義するのか考えています
Dim rect1 as RECT, rect2 as RECT ,,,,, rect10 as RECT
とやって、これらに定数を代入するときにいちいち
rect1.Top = 10
rect1.Left =10
---
rect10.Bottom = 1000
rect10.Right = 1970
とかやってたら大変です。 Cとかなら
rect1 = CRect( 10,10,100,100)
って出来ますが、VBAでは出来ませんか。 またやりたいのは、PtInRectなので、簡単に
if PtInRect( CRect( 10,10,100,100), x,y) <> 0 then
みたいにしたいのですが、どうしたら一番スマートに出来るでしょう?
324デフォルトの名無しさん (JP 0H4f-mnSR)
2019/02/19(火) 16:25:56.81ID:DYfM7cdrH >>323
四角形を描画するメソッドは知ってる?
四角形を描画するメソッドは知ってる?
325デフォルトの名無しさん (JP 0H4f-mnSR)
2019/02/19(火) 16:32:07.86ID:DYfM7cdrH326デフォルトの名無しさん (JP 0H4f-mnSR)
2019/02/19(火) 16:34:56.56ID:DYfM7cdrH327デフォルトの名無しさん (JP 0H4f-mnSR)
2019/02/19(火) 16:46:08.58ID:DYfM7cdrH Topとか名前を付けないで配列の要素番号に対応づけるとか
328デフォルトの名無しさん (ブーイモ MMcf-blJ9)
2019/02/19(火) 19:15:58.92ID:C6whiypoM >>322
それです!ドストライクです!!
エスパーさん手間を掛けて本当にすみませんでした。
二日考えてダメだったんですけど一回何か表示させる必要があったんですね。
あと次回は自力で出来るように頑張ります〜!!
ありがとうございました!
それです!ドストライクです!!
エスパーさん手間を掛けて本当にすみませんでした。
二日考えてダメだったんですけど一回何か表示させる必要があったんですね。
あと次回は自力で出来るように頑張ります〜!!
ありがとうございました!
329デフォルトの名無しさん (ワッチョイ 071f-BmB6)
2019/02/19(火) 19:40:34.45ID:VgLhyIar0 カンマ区切りのCSVファイルを2次元配列に入れたい。
Dim arr()
arr=getCSVData(strFile)
private Function getCSVData(byval ...)as string()
Dim tarArr()
//処理
getCSVData=tarArr
end Function
こんな感じで配列にして1次元が行、2次元が列に格納したいんですが
ReDim、ReDim Preserveのタイミング等々が分かりません。
先に一度開いて行数と列数の最大を取得してからReDimでtarArrを2次元配列にし、もう一度開いて一行ずつ読み取ってカンマ区切りをsplitして配列に入れてからUBound分ループしてtarArrに入れる方法ですかね?
Dim arr()
arr=getCSVData(strFile)
private Function getCSVData(byval ...)as string()
Dim tarArr()
//処理
getCSVData=tarArr
end Function
こんな感じで配列にして1次元が行、2次元が列に格納したいんですが
ReDim、ReDim Preserveのタイミング等々が分かりません。
先に一度開いて行数と列数の最大を取得してからReDimでtarArrを2次元配列にし、もう一度開いて一行ずつ読み取ってカンマ区切りをsplitして配列に入れてからUBound分ループしてtarArrに入れる方法ですかね?
330デフォルトの名無しさん (ワッチョイ c701-mnSR)
2019/02/19(火) 20:09:29.49ID:3o3WGLUD0 >>329
多次元配列は最後の要素しか拡張できないから、左の要素はUbound(Split(1行目,”,”))で最初に確定させるしかない
右の要素はredim preserveで拡張できるから普通にループで増やしていけば良い
多次元配列は最後の要素しか拡張できないから、左の要素はUbound(Split(1行目,”,”))で最初に確定させるしかない
右の要素はredim preserveで拡張できるから普通にループで増やしていけば良い
331デフォルトの名無しさん (アークセー Sx7b-a/B5)
2019/02/19(火) 20:17:18.51ID:f2qQz3/xx >>323
クラスにしたらいいんじゃないの
vbaで引数付きコンストラクタの実現は難しいけど、
四つの座標情報を引数に取るプロパティ関数を用意して、Rect構造体のプロパティを持たせるようにすればそれらしいことができるのでは
クラスにしたらいいんじゃないの
vbaで引数付きコンストラクタの実現は難しいけど、
四つの座標情報を引数に取るプロパティ関数を用意して、Rect構造体のプロパティを持たせるようにすればそれらしいことができるのでは
332デフォルトの名無しさん (ワッチョイ 8702-5sVJ)
2019/02/19(火) 20:41:15.17ID:XJA9DtkM0333デフォルトの名無しさん (ワッチョイ 5f2f-dPPD)
2019/02/19(火) 21:21:04.93ID:eXSGnhOj0 >>323
構造体でできなくはない
VBAの構造体、制限多いけどな
Public Type Rect
Top As Integer: Left As Integer: Bottom As Integer: Right As Integer
End Type
Public Function CRect(Top As Integer, Left As Integer, Bottom As Integer, Right As Integer) As Rect
Dim r As Rect
r.Top = Top: r.Left = Left: r.Bottom = Bottom: r.Right = Right
CRect = r
End Function
Public Function PtInRect(Rect As Rect, x As Integer, y As Integer) As Boolean
If Rect.Left < x And Rect.Right > x And Rect.Top < y And Rect.Bottom > y Then
PtInRect = True
End If
End Function
Public Sub test()
Dim r(10) As Rect
r(1) = CRect(10, 10, 100, 100) '...
If PtInRect(r(1), 15, 180) Then
MsgBox "In Rect1"
End If
If PtInRect(CRect(10, 10, 100, 100), 15, 80) Then
MsgBox "In Rect2"
End If
End Sub
改行多すぎらしいので:で詰めて書いてる
構造体でできなくはない
VBAの構造体、制限多いけどな
Public Type Rect
Top As Integer: Left As Integer: Bottom As Integer: Right As Integer
End Type
Public Function CRect(Top As Integer, Left As Integer, Bottom As Integer, Right As Integer) As Rect
Dim r As Rect
r.Top = Top: r.Left = Left: r.Bottom = Bottom: r.Right = Right
CRect = r
End Function
Public Function PtInRect(Rect As Rect, x As Integer, y As Integer) As Boolean
If Rect.Left < x And Rect.Right > x And Rect.Top < y And Rect.Bottom > y Then
PtInRect = True
End If
End Function
Public Sub test()
Dim r(10) As Rect
r(1) = CRect(10, 10, 100, 100) '...
If PtInRect(r(1), 15, 180) Then
MsgBox "In Rect1"
End If
If PtInRect(CRect(10, 10, 100, 100), 15, 80) Then
MsgBox "In Rect2"
End If
End Sub
改行多すぎらしいので:で詰めて書いてる
334デフォルトの名無しさん (ワッチョイ 5f2f-dPPD)
2019/02/19(火) 21:25:35.60ID:eXSGnhOj0 >>329
エクセルでCSV開いてシートをそのまま2次元配列に突っ込めば良いんじゃないか
エクセルでCSV開いてシートをそのまま2次元配列に突っ込めば良いんじゃないか
335デフォルトの名無しさん (ワッチョイ 5f4f-nFDO)
2019/02/19(火) 21:47:03.10ID:LH3y88CS0 >>319
え?
そうなの?
それは知らなかった。
ちなみに最新はASP.netのcore2.1だと思うんだけど
VisualStudioでASP.Net Coreプロジェクトを作る際、
.Net Coreと.Net Freamworkのどちらのプラットフォームを選択するか聞いてくるけどあれは何なの?
え?
そうなの?
それは知らなかった。
ちなみに最新はASP.netのcore2.1だと思うんだけど
VisualStudioでASP.Net Coreプロジェクトを作る際、
.Net Coreと.Net Freamworkのどちらのプラットフォームを選択するか聞いてくるけどあれは何なの?
336デフォルトの名無しさん (アウアウエー Sa1f-ngFe)
2019/02/19(火) 22:14:11.03ID:+ssFN3TXa337デフォルトの名無しさん (ワッチョイ 877d-yQ/S)
2019/02/19(火) 22:33:29.04ID:LjPGQpms0 Dimってどこに書いてますか?
全部最初に書きますか?
For i= 0 to 100
for j = 0 to 100
iとjを使った処理
next
next
この時、Dim j as Integer ってどこに書きますか?
「For i= 0 to 100」の上か下かという質問です。
全部最初に書きますか?
For i= 0 to 100
for j = 0 to 100
iとjを使った処理
next
next
この時、Dim j as Integer ってどこに書きますか?
「For i= 0 to 100」の上か下かという質問です。
338デフォルトの名無しさん (ワッチョイ 2735-cT+3)
2019/02/19(火) 22:37:52.77ID:XTzrMDQC0 定義は一番最初にまとめて全て書くと管理しやすい
個人的にはそもそも書かないけどな〜
個人的にはそもそも書かないけどな〜
339デフォルトの名無しさん (ワッチョイ 071f-BmB6)
2019/02/19(火) 22:45:04.21ID:VgLhyIar0 >>330
自分でも調べてたけど、「最後の要素しか増やせない」って同じこと書いてありました。これは
例えば、行数読んだ結果がLcnt=10だとして
まず
ReDim(Lcnt,0)で作り
配列(0 to 10,0)ができ
Redim Preserve(Lcnt,Ubound(Split(1行目))
区切った値が5なら
配列(0 to 10,0to5)が出来てしまい、いっぺんに右の要素数が変更されるってことで合ってます?
と言うことは、1行目が5列で次に読んだ2行目が3列なら右の要素数は3に減るって事ですかね?
ifか何かで要素数は増える時だけRedim Preserveのが良いですかね?
自分でも調べてたけど、「最後の要素しか増やせない」って同じこと書いてありました。これは
例えば、行数読んだ結果がLcnt=10だとして
まず
ReDim(Lcnt,0)で作り
配列(0 to 10,0)ができ
Redim Preserve(Lcnt,Ubound(Split(1行目))
区切った値が5なら
配列(0 to 10,0to5)が出来てしまい、いっぺんに右の要素数が変更されるってことで合ってます?
と言うことは、1行目が5列で次に読んだ2行目が3列なら右の要素数は3に減るって事ですかね?
ifか何かで要素数は増える時だけRedim Preserveのが良いですかね?
340デフォルトの名無しさん (スプッッ Sdff-BmB6)
2019/02/19(火) 22:50:47.62ID:VJWnLClRd >>337
VBは上にまとめ
C#は使う時
他の言語はしらん。あくまでイメージ。
スコープは短くが理想だから長くなって下部に変数が初登場ならFunctionとかCallで余分そうなものは排除。
だからそのループも逃がす
VBは上にまとめ
C#は使う時
他の言語はしらん。あくまでイメージ。
スコープは短くが理想だから長くなって下部に変数が初登場ならFunctionとかCallで余分そうなものは排除。
だからそのループも逃がす
341デフォルトの名無しさん (ワッチョイ bf8c-O/Qv)
2019/02/20(水) 00:08:08.78ID:Hgznwu9O0 >>339
あなたの用途に合ってるのは2次元配列じゃなくて配列の配列。
ReDim arr(0 To n)
arr(i) = 別の配列 ` i : 0〜n
みたいなことができる
「別の配列」のところに、csvの一行分を処理して配列を返す関数を当てはめればいい。
もちろんクラス化してもいいけどさ
あなたの用途に合ってるのは2次元配列じゃなくて配列の配列。
ReDim arr(0 To n)
arr(i) = 別の配列 ` i : 0〜n
みたいなことができる
「別の配列」のところに、csvの一行分を処理して配列を返す関数を当てはめればいい。
もちろんクラス化してもいいけどさ
342デフォルトの名無しさん (ワッチョイ 7f2c-Ioh3)
2019/02/20(水) 03:34:25.29ID:B2QSVSiS0 >>329-334
Ruby では普通に、2次元配列に入る
require "csv"
p CSV.read( "test.csv" )
結果
[["id", "first name", "last name", "age"],
["1", "taro", "tanaka", "20"],
["2", "yumi", "adachi", "21"]]
Ruby では普通に、2次元配列に入る
require "csv"
p CSV.read( "test.csv" )
結果
[["id", "first name", "last name", "age"],
["1", "taro", "tanaka", "20"],
["2", "yumi", "adachi", "21"]]
343デフォルトの名無しさん (JP 0H4f-mnSR)
2019/02/20(水) 07:38:24.67ID:5mnmpgTAH クラスって要素名を予め宣言しないといけないからcsvの要素が変わると対応できない?
教えてエロい人
教えてエロい人
344デフォルトの名無しさん (アークセー Sx7b-a/B5)
2019/02/20(水) 07:54:07.56ID:KjQRkkj7x 要素名で名前解決する処理がないなら、レコード値を配列プロパティで受け渡すだけで良いと思う
名前解決が必要なら要素宣言しないといけないね
名前解決が必要なら要素宣言しないといけないね
345デフォルトの名無しさん (ササクッテロル Sp7b-nJZM)
2019/02/20(水) 11:17:04.40ID:Aqbfj0bAp 教えてください。
エクセルのマクロです
PDFファイル(100ページくらいある)を、エクセルに、全ページをたて一列に貼り付けたいのですが、
どう書けばいいでしょうか
エクセルのマクロです
PDFファイル(100ページくらいある)を、エクセルに、全ページをたて一列に貼り付けたいのですが、
どう書けばいいでしょうか
346デフォルトの名無しさん (ドコグロ MM1f-ngFe)
2019/02/20(水) 11:58:45.20ID:EgtCXVwuM RPAを買ってコピペを自動化するのが手っ取り早いよ
347デフォルトの名無しさん (ワッチョイ e7ce-1ffV)
2019/02/20(水) 12:07:33.49ID:crzgHpZv0 なぜPDFを貼り付けるのか
そのまま印刷すればええやん
そのPDFは1つのファイルの中に100ページあるの?
1ページだけのPDFファイルが100個あるの?
バラバラのPDFファイルを1つに結合したいだけならフリーウェアでできるよ
そのまま印刷すればええやん
そのPDFは1つのファイルの中に100ページあるの?
1ページだけのPDFファイルが100個あるの?
バラバラのPDFファイルを1つに結合したいだけならフリーウェアでできるよ
348デフォルトの名無しさん (ササクッテロル Sp7b-nJZM)
2019/02/20(水) 12:28:15.94ID:Aqbfj0bAp >>347
印刷のためじゃなく、PDFをシートにはり、横にエクセルでコメント入れたい。
印刷のためじゃなく、PDFをシートにはり、横にエクセルでコメント入れたい。
349デフォルトの名無しさん (JP 0H4f-mnSR)
2019/02/20(水) 12:36:44.12ID:5mnmpgTAH コメントならPDFファイルでも入れられるよ
350デフォルトの名無しさん (ワッチョイ 2735-cT+3)
2019/02/20(水) 12:37:09.49ID:HgkG/6H60351デフォルトの名無しさん (ササクッテロル Sp7b-nJZM)
2019/02/20(水) 12:38:58.44ID:Aqbfj0bAp >>349
大量のコメントや式です
大量のコメントや式です
352デフォルトの名無しさん (ササクッテロル Sp7b-nJZM)
2019/02/20(水) 12:39:49.65ID:Aqbfj0bAp >>349
大量のコメントや式です
大量のコメントや式です
353デフォルトの名無しさん (スッップ Sd7f-TQkV)
2019/02/20(水) 12:41:03.23ID:zcHFtFOnd >>345
「教えてください」で始まる質問をするのは馬鹿しかいない法則
「教えてください」で始まる質問をするのは馬鹿しかいない法則
354デフォルトの名無しさん (ササクッテロル Sp7b-nJZM)
2019/02/20(水) 12:53:11.56ID:Aqbfj0bAp 分割するとは?
100ページのドキュメントだから100個のファイルを作成するということでしょうか。
100ページのドキュメントだから100個のファイルを作成するということでしょうか。
355デフォルトの名無しさん (ワッチョイ 2735-cT+3)
2019/02/20(水) 12:55:03.75ID:HgkG/6H60 そういう事
356デフォルトの名無しさん (ササクッテロル Sp7b-nJZM)
2019/02/20(水) 13:15:01.09ID:Aqbfj0bAp 分割しないで、ページを読み込み、貼り付けはできないのでしょうか?
357デフォルトの名無しさん (JP 0H4f-mnSR)
2019/02/20(水) 13:17:35.13ID:5mnmpgTAH 100in1で出力すればいけんじゃない?
358デフォルトの名無しさん (スッップ Sd7f-TQkV)
2019/02/20(水) 13:27:36.70ID:zcHFtFOnd エクセル方眼紙の厚かましい馬鹿は死ね
359デフォルトの名無しさん (JP 0H4f-mnSR)
2019/02/20(水) 13:27:47.31ID:5mnmpgTAH PDFを画像にするっていうのはプリンタで印刷するのと同じイメージだから基本1ページ1ファイルね
360デフォルトの名無しさん (ワッチョイ 2735-cT+3)
2019/02/20(水) 13:48:22.42ID:HgkG/6H60361デフォルトの名無しさん (JP 0H4f-mnSR)
2019/02/20(水) 13:51:25.06ID:5mnmpgTAH pdfをtxtにできるサイトがあるね
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 小野田紀美・経済安保担当相「何か気に入らないことがあればすぐに経済的威圧をする国への依存はリスク」 ★2 [Hitzeschleier★]
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★2 [ぐれ★]
- 【中国局長】両国関係に「深刻な影響」 首相発言の撤回要求 [蚤の市★]
- 外務省局長は無言で厳しい表情…日中の高官協議終了か 高市首相“台湾”発言で中国が強硬対応 発言撤回求めたか…★3 [BFU★]
- 【インバウンド】中国人観光客の日本での消費額は年間約2兆円超…中国政府は公務員の出張取り消し [1ゲットロボ★]
- 【維新】吉村知事「中国人観光客だけに頼るビジネスモデル変えていかないといけない」「高市総理の発言は撤回する必要はない」 [Hitzeschleier★]
- 【高市朗報】 日本政府「一昨年は1300億円。去年も防衛費が1100億円余ったw」 日本の防衛費は充分足りてる事が判明。増やす必要無し [485983549]
- 高市早苗「支持者の理解を得られないので台湾発言を撤回できない」 [931948549]
- 【実況】博衣こよりのえちえち歌枠🧪
- 【高市速報】日本人の3割「中国への武力行使に踏み切る必要がある」ANN世論調査 [931948549]
- 外務省局長、よくわからないまま帰国へ [834922174]
- 【速報】51歳まで自衛隊になれるように法改正ww [347751896]
