ExcelのVBAに関する質問スレです
コード書き込みや作成依頼もOK
※前スレ
Excel VBA 質問スレ Part57
https://mevius.5ch.net/test/read.cgi/tech/1536583359/
探検
Excel VBA 質問スレ Part58
■ このスレッドは過去ログ倉庫に格納されています
2018/11/19(月) 06:47:24.99ID:Qq88xGOU
2018/11/23(金) 10:13:26.49ID:NlhnMW/X
表示されているシート名 って要は現在アクティブなシートってことでしょ?
ActiveSheet.Nameで取れるんじゃ?
ActiveSheet.Nameで取れるんじゃ?
2018/11/23(金) 11:15:52.26ID:OdmoxaxG
>>8
やったことがないから保証できないが、
OLEObject.ObjectプロパティからOLEオブジェクトのコントロールを取得できるはず
ここからExcelのオブジェクトモデル経由でシート名等は取れるかも
やったことがないから保証できないが、
OLEObject.ObjectプロパティからOLEオブジェクトのコントロールを取得できるはず
ここからExcelのオブジェクトモデル経由でシート名等は取れるかも
118
2018/11/23(金) 11:27:11.08ID:pYaMx0la2018/11/23(金) 16:52:45.93ID:NlhnMW/X
表示範囲っての意味がよく判らない。使用されている範囲ならUsedRangeプロパティだけどそうじゃない?
2018/11/23(金) 18:46:47.55ID:A5v+c7Q3
QueryTables.addを利用して取り込んだテキストデータを
TextFileFixedColumnWidths = array(5,4,2)
とVBソースに記述して5、4、2バイト目で区切ってエクセルに貼り付けしているのですが、
このarrayのカッコ内の値5,4,2の部分を1つのセル内に定義しておき、そこから取得して処理する方法を教えてください。(セル値を変えるだけで区切りバイトを変えられるようにしたいです)
セル内の定義は下記のような感じの形式で実現できたらいいなと思っています。
5,4,2
または
"5","4","2"
など
よろしくお願いします。
TextFileFixedColumnWidths = array(5,4,2)
とVBソースに記述して5、4、2バイト目で区切ってエクセルに貼り付けしているのですが、
このarrayのカッコ内の値5,4,2の部分を1つのセル内に定義しておき、そこから取得して処理する方法を教えてください。(セル値を変えるだけで区切りバイトを変えられるようにしたいです)
セル内の定義は下記のような感じの形式で実現できたらいいなと思っています。
5,4,2
または
"5","4","2"
など
よろしくお願いします。
2018/11/23(金) 18:47:07.61ID:pYaMx0la
>>12
UsedRangeは、まさに「Excel上で利用されている範囲」になるので、ちょっと違う。
探しているのは、(WordとかPowerpointとか) 「被貼付側から見えている範囲」。
コピペを行うときにExcel上で範囲指定してる、まさにその範囲の情報が欲しいのです。
『広い範囲が使われているシート(埋め込みオブジェクト)の一部分だけが表示されている時、
その表示部分を特定する』がやりたいの。
UsedRangeは、まさに「Excel上で利用されている範囲」になるので、ちょっと違う。
探しているのは、(WordとかPowerpointとか) 「被貼付側から見えている範囲」。
コピペを行うときにExcel上で範囲指定してる、まさにその範囲の情報が欲しいのです。
『広い範囲が使われているシート(埋め込みオブジェクト)の一部分だけが表示されている時、
その表示部分を特定する』がやりたいの。
2018/11/23(金) 20:29:14.68ID:SJrbhhQk
>>13
3つパラメータがあるならそもそも3つのセルで管理すればいいんじゃないかと思うが、区切る回数も動的にしたいのかな?
パラメーター記述用のセルに5,4,2と入力しておいて、コード内でSplit関数を使いそのセルの値をカンマ区切りで配列化するのが普通かな
そうやって得たString配列の要素全てをCIntで型変換してInteger配列に入れ直せば、TextFileFixedColumnWidthsプロパティに代入できる
3つパラメータがあるならそもそも3つのセルで管理すればいいんじゃないかと思うが、区切る回数も動的にしたいのかな?
パラメーター記述用のセルに5,4,2と入力しておいて、コード内でSplit関数を使いそのセルの値をカンマ区切りで配列化するのが普通かな
そうやって得たString配列の要素全てをCIntで型変換してInteger配列に入れ直せば、TextFileFixedColumnWidthsプロパティに代入できる
2018/11/23(金) 20:45:52.52ID:A5v+c7Q3
2018/11/24(土) 07:26:12.22ID:XV/jbN3E
>>15
無事にやりたいことが実現できました。ありがとうございました。勉強になりました。
無事にやりたいことが実現できました。ありがとうございました。勉強になりました。
2018/11/26(月) 18:21:38.61ID:jE4mmGCd
ユーザーフォームのボタンでExcel以外のファイルを開くのにShell.Execute使ったんだけど、ボタンを押しても何も反応しない
CreateObject("Shell.Application").ShellExecute "c:\test\test.pdf"
CreateObject("Shell.Application").ShellExecute "c:\test\test.pdf"
2018/11/26(月) 19:08:14.69ID:sSO4v+r+
>>18
試してみたけど、そのコードで問題なく動くなあ
試してみたけど、そのコードで問題なく動くなあ
2018/11/26(月) 19:30:02.47ID:VtKrTehC
>>18
デザインモードがオンになってるとかじゃね
デザインモードがオンになってるとかじゃね
2018/11/26(月) 20:06:27.80ID:c8QT25Tm
検証ありがとう!
ちな標準モジュールに書くと普通に動く。
どうもユーザーフォームに書くとダメみたい
ちな標準モジュールに書くと普通に動く。
どうもユーザーフォームに書くとダメみたい
2018/11/26(月) 20:09:03.00ID:c8QT25Tm
2018/11/26(月) 22:08:01.92ID:sSO4v+r+
ユーザーフォーム作ってボタン配置してボタンのOnClickにコード書いたけど問題ない
2018/11/26(月) 22:25:28.75ID:c8QT25Tm
みんなマジか〜
環境は2010、2007ともにダメだった。
明日2016で試してみる。
ちなみにパスがフォルダ指定までなら動く。
もう意味わからん
環境は2010、2007ともにダメだった。
明日2016で試してみる。
ちなみにパスがフォルダ指定までなら動く。
もう意味わからん
2018/11/26(月) 22:57:14.49ID:sSO4v+r+
>>24
もしかしてpdfをダブルクリックした時に「このファイルを開くアプリ」の選択メニューが出てない?
もしかしてpdfをダブルクリックした時に「このファイルを開くアプリ」の選択メニューが出てない?
2018/11/27(火) 08:58:52.14ID:TmwvOLJp
>>25
すまぬすまぬ。実は開かないのは.xlsxや.xls。
さっきやったら.txtや.bmpに書き換えるとちゃんと動いた。関連付けがおかしいかと思ったけどファイルダブルクリックでexcelファイルは開く。
すまぬすまぬ。実は開かないのは.xlsxや.xls。
さっきやったら.txtや.bmpに書き換えるとちゃんと動いた。関連付けがおかしいかと思ったけどファイルダブルクリックでexcelファイルは開く。
2018/11/27(火) 09:23:34.69ID:OWqQZ565
さすがにExcelはOpen関数使えよ。。。
2018/11/27(火) 11:44:24.61ID:Y7caogE6
2018/11/27(火) 21:03:19.26ID:JHhXTC3j
30デフォルトの名無しさん
2018/11/28(水) 21:03:32.22ID:btdWGy6U 切り取り・コピーしようとしたら「クリップボードを開くことが」と表示されました 前までは正常に出来てたのに急にあんなになるなんて
どうしたらなおるんですか
原因不明の謎の症状
どうしたらなおるんですか
原因不明の謎の症状
3130
2018/11/28(水) 21:11:36.27ID:btdWGy6U >>30のところ、再起動したら直りました
自己解決
自己解決
32デフォルトの名無しさん
2018/11/28(水) 21:55:41.99ID:6iHSQiFE WorksheetFunctionを使うと遅くなると聞きました。セルで計算して取得したほうがいいですか?
2018/11/28(水) 22:15:02.98ID:T0n8cI1t
>>32
遅いと言っても、よほど大量のデータを処理しない限り大差ないから気にしなくていい
遅いと言っても、よほど大量のデータを処理しない限り大差ないから気にしなくていい
34デフォルトの名無しさん
2018/11/28(水) 23:27:06.65ID:6iHSQiFE >>33
ありがとうございます
ありがとうございます
2018/11/30(金) 08:07:23.94ID:yuW+a+er
workbook.Aのマクロから、workbook.Bのマクロパスワードを解除できますか?
*パスワードは分かっています
**windows10 / excel 2016
同じパスワードをかけた大量のファイルのマクロパスワード解除が必要になった為
*パスワードは分かっています
**windows10 / excel 2016
同じパスワードをかけた大量のファイルのマクロパスワード解除が必要になった為
2018/11/30(金) 08:09:10.42ID:cHj05URw
できるかと言えばできる。
2018/11/30(金) 08:53:39.83ID:yuW+a+er
>>36
ありがとうございます。
VBAでsendkeyでパスワード入れたいのですが、プロジェクトエクスプローラーのウィンドウで、目的のworkbook.Bを選択してパスワードウィンドウを開く事がうまくできないところです。
ありがとうございます。
VBAでsendkeyでパスワード入れたいのですが、プロジェクトエクスプローラーのウィンドウで、目的のworkbook.Bを選択してパスワードウィンドウを開く事がうまくできないところです。
2018/11/30(金) 09:06:54.20ID:cHj05URw
2018/11/30(金) 11:07:00.94ID:yuW+a+er
>>38
ご忠告ありがとうございます。
ご忠告ありがとうございます。
2018/11/30(金) 12:03:29.38ID:LyLvfax5
>>35
MSDNライブラリでWorkbookオブジェクトのOpenメソッドの説明を詳しく読めば解決
MSDNライブラリでWorkbookオブジェクトのOpenメソッドの説明を詳しく読めば解決
2018/11/30(金) 18:19:35.02ID:RELaXAo9
>>40
マクロのパスワード解除ってワークブックオープン関係なくね。
マクロのパスワード解除ってワークブックオープン関係なくね。
2018/11/30(金) 18:57:50.86ID:cHj05URw
そもそもマクロパスワ―ドってことはVBEを弄ることになるから普通はセキュリティ設定に引っかかる。
VBAでVBEを弄れる設定になってるなら、参照設定でVisualBasic for Applications Extencibilityを追加して頑張ることになるわけだけどセキュリティ皆無となって危険だぞ。
それにそのコードがウィルス判定されるかも。
VBAでVBEを弄れる設定になってるなら、参照設定でVisualBasic for Applications Extencibilityを追加して頑張ることになるわけだけどセキュリティ皆無となって危険だぞ。
それにそのコードがウィルス判定されるかも。
2018/11/30(金) 19:30:48.61ID:D2Lo7Qd2
>>41
この質問者が「解除」という言葉で言いたいのは、パスワードなしのファイルとしてファイルを再保存することじゃなくて、ただ単に読み取りパスワード付のファイルを普通に実行することだと思うぞ
Sendkeysとか恐ろしいことを上で言ってるので
この質問者が「解除」という言葉で言いたいのは、パスワードなしのファイルとしてファイルを再保存することじゃなくて、ただ単に読み取りパスワード付のファイルを普通に実行することだと思うぞ
Sendkeysとか恐ろしいことを上で言ってるので
2018/11/30(金) 23:26:49.39ID:1+TlpALp
>>43
プロジェクトエクスプローラーって言ってるのにそんなわけ無いだろ
プロジェクトエクスプローラーって言ってるのにそんなわけ無いだろ
4535
2018/12/01(土) 07:37:11.82ID:0dTVd6NK >>43
マクロのロック解除です。
ワークブックと書いて混乱を招いてしまいました。
ファイルは開けます。
現状はマクロでVBAをアクティベートし、vbkeyで操作する方法で試してますが未だにうまく動かないです。
マクロのロック解除です。
ワークブックと書いて混乱を招いてしまいました。
ファイルは開けます。
現状はマクロでVBAをアクティベートし、vbkeyで操作する方法で試してますが未だにうまく動かないです。
2018/12/01(土) 12:13:55.48ID:bMs1CWzL
>>45
VBAのsendkeyは不安定なので、vbsとかを経由しろとか聞いたことある気がする。ちょっと調べてみては?
VBAのsendkeyは不安定なので、vbsとかを経由しろとか聞いたことある気がする。ちょっと調べてみては?
2018/12/01(土) 12:20:42.98ID:TS4bNkMJ
フォルダ内にある全てのtxtファイルをピボットテーブルで変換して一つのファイルに結合するにはどうしたら良いですか?
2018/12/01(土) 12:22:51.76ID:TS4bNkMJ
>>48
一つのテキストファイルあたりExcelの104万行を超えています
一つのテキストファイルあたりExcelの104万行を超えています
2018/12/01(土) 12:30:20.41ID:Yrektqt+
>>49
Accessに取り込んで104万件以下に整理してからExcelに読み込む
Accessに取り込んで104万件以下に整理してからExcelに読み込む
2018/12/01(土) 13:39:55.20ID:TS4bNkMJ
>>50
Accessで一括に読み込めますか?
Accessで一括に読み込めますか?
2018/12/01(土) 17:27:15.14ID:qC6lat5H
>>47
vbsとか経由でも駄目だろ。
何が駄目かと言うと入力したい所にピンポイントで入力するわけじゃ無いところ。
直前に入力したい所にフォーカスを当てるとか工夫してる人もいるけど根本的によろしく無いんだよ。
動かしてる時に別の何かをクリックしたりするとそっちに入力されちまう。
改めて確認するけどVBAがパスワード保護されてコ―ド編集出来ない状態になっている。
パスワードは分かっていて手動で解除出来るけどブックが大量で解除と再設定が大変という問題?
vbsとか経由でも駄目だろ。
何が駄目かと言うと入力したい所にピンポイントで入力するわけじゃ無いところ。
直前に入力したい所にフォーカスを当てるとか工夫してる人もいるけど根本的によろしく無いんだよ。
動かしてる時に別の何かをクリックしたりするとそっちに入力されちまう。
改めて確認するけどVBAがパスワード保護されてコ―ド編集出来ない状態になっている。
パスワードは分かっていて手動で解除出来るけどブックが大量で解除と再設定が大変という問題?
2018/12/01(土) 17:45:25.58ID:qC6lat5H
>>51
そのテキストファイルはどんなファイル?
データベースのデータのようなものなの?
その104万行というのは、そもそも全部必要なの?
全部必要じゃない、特にもし必要なのはごく一部というのだったら、テキストファイルとして開いて1行ずつ読み込んで、必要あるデータのみ抜き出すという方法が良いと思う。
全部必要だったらAccessを使うべきデータ量だな。
でも、そのデータをどんな風に扱いたいか分からないから一概には言えない。
そのテキストファイルはどんなファイル?
データベースのデータのようなものなの?
その104万行というのは、そもそも全部必要なの?
全部必要じゃない、特にもし必要なのはごく一部というのだったら、テキストファイルとして開いて1行ずつ読み込んで、必要あるデータのみ抜き出すという方法が良いと思う。
全部必要だったらAccessを使うべきデータ量だな。
でも、そのデータをどんな風に扱いたいか分からないから一概には言えない。
5435
2018/12/01(土) 17:56:01.08ID:0dTVd6NK >>52
おっしゃる通りです。
マクロで大量に作ったマクロパスワードが同じファイルのパスワードを解除し、マクロを消すプログラムを作りたいです。
マクロを消すプログラムはマクロパスワード無しのファイルに関しては全てうまく動いています。
またエクセルファイルにはパスワードはかけていません。
過去に作ったエクセルファイルは残したままマクロを全て消せとの指令で必要となっています。
おっしゃる通りです。
マクロで大量に作ったマクロパスワードが同じファイルのパスワードを解除し、マクロを消すプログラムを作りたいです。
マクロを消すプログラムはマクロパスワード無しのファイルに関しては全てうまく動いています。
またエクセルファイルにはパスワードはかけていません。
過去に作ったエクセルファイルは残したままマクロを全て消せとの指令で必要となっています。
2018/12/01(土) 18:47:27.12ID:X1CAEXrd
xlsxで保存すればマクロは消えない?
2018/12/02(日) 12:24:29.74ID:RxJGbltM
そんな大量のデータ、一行ずつ読んでたら日が暮れるぞ。
バイナリモードで開いてメモリの許す半範囲で読んで、末尾の改行までを消すの繰り返して読み込んだ方が遥かに早いよ
バイナリモードで開いてメモリの許す半範囲で読んで、末尾の改行までを消すの繰り返して読み込んだ方が遥かに早いよ
2018/12/02(日) 13:35:42.09ID:QrHhUpeR
100万行越えのデータは、まず複数列、複数シートを使って読み込んでみれば?
内容によっては固まって何もできなくなる悪寒しかないけど
内容によっては固まって何もできなくなる悪寒しかないけど
2018/12/02(日) 17:24:20.84ID:L8bj4c7S
100万行が大量か?
それはどんな100万行かによる。
100万個の改行だって100万行だ。
それはどんな100万行かによる。
100万個の改行だって100万行だ。
2018/12/02(日) 17:27:05.82ID:L8bj4c7S
60デフォルトの名無しさん
2018/12/02(日) 21:09:54.29ID:V0qE8100 ユーザーフォーム上のクリックボタンが、Tabで通過する分には何も起こらないのだけどカーソルキーで通過するとチェック入るのだけど、コード書いて制御するしかない?
2018/12/02(日) 22:14:16.48ID:KrKU+109
クリックボタンにチェックとは?
2018/12/03(月) 00:04:08.66ID:X8MytAwB
EXCELのVBA使いたいのですが
どうやったら起動できますか?
最初からEXCELにソフト入ってるんですか?
どうやったら起動できますか?
最初からEXCELにソフト入ってるんですか?
2018/12/03(月) 00:39:02.99ID:eKdLT8zi
Microsoft Visual Basic for Applications(VBA)エディターが開きます。
Alt+F11
Alt+F11
64デフォルトの名無しさん
2018/12/03(月) 07:02:37.21ID:F098t6Ls >>61
すみません、チェックボックスでした
すみません、チェックボックスでした
2018/12/03(月) 19:46:40.74ID:zpf7CT60
2018/12/03(月) 23:49:02.49ID:Ks+qj00w
フランス政府からマクロン消したら市民が泣いて喜ぶよね
ありがとうございます
ありがとうございます
2018/12/04(火) 00:09:42.14ID:fkKXq52U
>>62
まずは首を括れよ
まずは首を括れよ
2018/12/04(火) 06:14:33.41ID:Jf/aCYja
>>62
消えろ小僧
消えろ小僧
2018/12/04(火) 09:00:31.20ID:F519qlgb
"ab","bc","c
d"
みたいなcsvがあり、これを処理速度重視で読み込みたいんですがなにかいい方法無いですかね
なんか配列操作で計算、集計して最後シート出力すると早いと思うので配列に入れたいんですが1行ずつの読み込みだとうまく行かずで困ってます
fsoで全文読んでも改行されてますし…
d"
みたいなcsvがあり、これを処理速度重視で読み込みたいんですがなにかいい方法無いですかね
なんか配列操作で計算、集計して最後シート出力すると早いと思うので配列に入れたいんですが1行ずつの読み込みだとうまく行かずで困ってます
fsoで全文読んでも改行されてますし…
2018/12/04(火) 09:15:39.52ID:TjlcF2tR
2018/12/04(火) 09:18:52.95ID:FU2ewWox
2018/12/04(火) 12:54:59.46ID:HOLQGFa9
どうでも良いけど1レコードの定義をちゃんとしないと膨大なカラムの1レコードデータになっちまうぞ。
バイナリ読み込みでやるのは確かに早いんだが、そこを気にする程のデータ量なのかなあ。
この間の100万行デ―タもサンプル作って読み込んだら10秒とかだったぞ。
バイナリ読み込みでやるのは確かに早いんだが、そこを気にする程のデータ量なのかなあ。
この間の100万行デ―タもサンプル作って読み込んだら10秒とかだったぞ。
2018/12/04(火) 13:26:11.27ID:F519qlgb
全文読んだ後にレコード単位に分けてカンマ区切りで分けてーをしっかりアルゴリズム書くて感じですかね
そこそこ面倒臭いですねこれ
そこそこ面倒臭いですねこれ
2018/12/04(火) 13:31:22.51ID:nDNFtNox
セルコピーでValudatonの中身までコピーする方法ってありますか?
愚直にコピーすると設定したプルダウン情報が消えてしまいます
愚直にコピーすると設定したプルダウン情報が消えてしまいます
2018/12/04(火) 17:53:21.87ID:eg0Zt3qJ
>>73
エスケープなし、カンマのみ項目なし、改行のみ項目なしなら楽なんだけどね
エスケープなし、カンマのみ項目なし、改行のみ項目なしなら楽なんだけどね
2018/12/04(火) 18:44:19.91ID:F519qlgb
2018/12/04(火) 23:45:07.95ID:foGY0MAA
外部のExcelマクロを呼び出し、その処理の中でMsgBoxが表示された場合、それを呼び出し元で認識する方法はありますか?
Msgboxを操作したいとかではなく、表示されたということがわかればいいです
Msgboxを操作したいとかではなく、表示されたということがわかればいいです
2018/12/05(水) 01:51:39.17ID:bmTXilR5
>>77
APIでHWNDを列挙
APIでHWNDを列挙
2018/12/05(水) 08:11:01.31ID:j7wcFAGs
2018/12/05(水) 18:51:03.67ID:cxhucZsa
2018/12/05(水) 22:21:05.50ID:LTu8VXCT
>>76
自己レス
adodbも面倒臭かったacces無いんでcsvのデータ型判定の為にschma.iniみたいなの作る必要あったり…
元の文字コードとかbomとか考慮しないといけないけどworkbookのopen使ってマズかったらエラー出した方が早かったかも
自己レス
adodbも面倒臭かったacces無いんでcsvのデータ型判定の為にschma.iniみたいなの作る必要あったり…
元の文字コードとかbomとか考慮しないといけないけどworkbookのopen使ってマズかったらエラー出した方が早かったかも
2018/12/06(木) 08:13:12.56ID:5yG8Yqq9
>>81
いい肥やしになったと思います
いい肥やしになったと思います
2018/12/06(木) 23:32:22.39ID:O2YT1bAS
肥やしって具体的には何のこと?
2018/12/07(金) 08:39:50.57ID:a2+Odvtp
普通にOpenしてLine Inputした方が速くて簡単だったんじゃない?
と思ったら文字コード?BOM?
最初の質問は何だったのか。
文字コード考えなきゃならんのなら、
最初から選択が限られるだろ。
と思ったら文字コード?BOM?
最初の質問は何だったのか。
文字コード考えなきゃならんのなら、
最初から選択が限られるだろ。
2018/12/07(金) 23:08:14.09ID:vEdbg58X
まあでもsplitはないよな
2018/12/07(金) 23:45:43.79ID:ny7N65D8
データ内の改行やカンマを正しく解釈するためにモジュール自作してる
2018/12/08(土) 08:49:31.99ID:D25PXYri
データ内のダブルクォーテーションもあるで
2018/12/08(土) 10:23:21.41ID:qbpmcynn
この手のことはだいたい同じ事を先に考えている人がいるから、
参考にするなりDLして利用するなりすれば、やりたいことは秒で完成させられる
理解するのはまた別で、ちゃんとソース読めな話になるけど。
たとえば、「VBA CSV BAS」でググって即出るヤツだとこんなとか。
ttps://github.com/sdkn104/VBA-CSV
参考にするなりDLして利用するなりすれば、やりたいことは秒で完成させられる
理解するのはまた別で、ちゃんとソース読めな話になるけど。
たとえば、「VBA CSV BAS」でググって即出るヤツだとこんなとか。
ttps://github.com/sdkn104/VBA-CSV
2018/12/08(土) 11:33:49.23ID:KOgxZmAl
Range("C1:C10") = "=A1+B1"
とセルに式を埋め込むと自動で A2+B2、A3+B3 とやってくれますが
WorksheetFunctionで上と同じ事を1行で簡単に書くことってできますか?
うまい方法思いつかないのでいつも 関数埋め込み→値貼り付けで式を消す とやってます
WorksheetFunctionのループは式の埋め込みより遅かったです
とセルに式を埋め込むと自動で A2+B2、A3+B3 とやってくれますが
WorksheetFunctionで上と同じ事を1行で簡単に書くことってできますか?
うまい方法思いつかないのでいつも 関数埋め込み→値貼り付けで式を消す とやってます
WorksheetFunctionのループは式の埋め込みより遅かったです
2018/12/08(土) 15:59:33.39ID:/nD5g8zA
>>89
わざわざVBAを使って、最後に値貼り付けするぐらいなら、俺ならVBAで計算して結果だけ書き込む
For r = 1 To 10
cells(r, 3) = cells(r, 1) + cells(r, 2)
Next
式がワークシート関数バリバリでVBAで再現するのが面倒なら、最後の値貼り付けをVBAで書く
set r = Range("C1:C10")
r.Copy
r.PasteSpecial Paste:=xlPasteValues
わざわざVBAを使って、最後に値貼り付けするぐらいなら、俺ならVBAで計算して結果だけ書き込む
For r = 1 To 10
cells(r, 3) = cells(r, 1) + cells(r, 2)
Next
式がワークシート関数バリバリでVBAで再現するのが面倒なら、最後の値貼り付けをVBAで書く
set r = Range("C1:C10")
r.Copy
r.PasteSpecial Paste:=xlPasteValues
2018/12/08(土) 16:47:33.14ID:X2RnV3YS
俺ならVBAで各セルに計算式埋めるけどな
2018/12/08(土) 17:13:31.83ID:Zw8nZFqz
Range("C1:C10").Formula = "=A1+B1"
Range("C1:C10").Value=Range("C1:C10").Value
Range("C1:C10").Value=Range("C1:C10").Value
2018/12/08(土) 18:00:32.80ID:FvhEiENk
>>89
人に教えてもらう分際で、一行でとか注文つけてんじゃねーよ。
人に教えてもらう分際で、一行でとか注文つけてんじゃねーよ。
2018/12/08(土) 19:19:47.59ID:I01ncySI
ワークシートか配列へ代入したり配列をワークシートに直接貼り付けたりって技いつ頃から一般的になった?
なんか20年前からやってたという人がいて本当かよと思ったんだが。
なんか20年前からやってたという人がいて本当かよと思ったんだが。
2018/12/08(土) 20:28:45.94ID:/nD5g8zA
2018/12/08(土) 20:53:05.77ID:dkUbxCqg
2018/12/08(土) 21:00:40.14ID:/nD5g8zA
20年前のことは知らんけど、さすがにここ2〜3年てことはない
もっと昔から知られてた
もっと昔から知られてた
2018/12/08(土) 21:04:04.90ID:Ac8D4eVv
>>97
ですね。
そもそもいちいちセル移動して操作なんて、トロくさくてやってられん。
Google Apps Scriptなんかでも配列で操作なんて、速度稼ぐ為に普通に使う枯れたテクニック。
あまりにもセル操作という初歩だけが広まった弊害だね。
ですね。
そもそもいちいちセル移動して操作なんて、トロくさくてやってられん。
Google Apps Scriptなんかでも配列で操作なんて、速度稼ぐ為に普通に使う枯れたテクニック。
あまりにもセル操作という初歩だけが広まった弊害だね。
2018/12/08(土) 21:07:43.53ID:KOgxZmAl
A いつも自分がやっているやり方
Range("C1:C10000") = "=A1+B1"
Range("C1:C10000").Copy
Range("C1:C10000").PasteSpecial Paste:=xlPasteValues
B 90案
For r = 1 To 10000
Cells(r, 3) = Cells(r, 1) + Cells(r, 2)
Next
C 92案
Range("C1:C10000").Formula = "=A1+B1"
Range("C1:C10000").Value = Range("C1:C10000").Value
D 配列
計算元の配列= Range("A1:B10000")
For i = 1 To 10000
計算結果格納配列(i, 0) = 計算元の配列(i, 1) + 計算元の配列(i, 2)
Next i
Range("C1:C10000").Value = ans
E 半分配列
For r = 1 To 10000
計算結果格納配列(r, 0) = Cells(r, 1) + Cells(r, 2)
Next
Range("C1:C10000").Value = ans
A0.035
B0.265
C0.031
D0.015
E0.062
Range("C1:C10000") = "=A1+B1"
Range("C1:C10000").Copy
Range("C1:C10000").PasteSpecial Paste:=xlPasteValues
B 90案
For r = 1 To 10000
Cells(r, 3) = Cells(r, 1) + Cells(r, 2)
Next
C 92案
Range("C1:C10000").Formula = "=A1+B1"
Range("C1:C10000").Value = Range("C1:C10000").Value
D 配列
計算元の配列= Range("A1:B10000")
For i = 1 To 10000
計算結果格納配列(i, 0) = 計算元の配列(i, 1) + 計算元の配列(i, 2)
Next i
Range("C1:C10000").Value = ans
E 半分配列
For r = 1 To 10000
計算結果格納配列(r, 0) = Cells(r, 1) + Cells(r, 2)
Next
Range("C1:C10000").Value = ans
A0.035
B0.265
C0.031
D0.015
E0.062
100デフォルトの名無しさん
2018/12/08(土) 21:09:26.57ID:KOgxZmAl 時間(秒)
A 0.035
B 0.265
C 0.031
D 0.015
E 0.062
配列は頭がごちゃごちゃして苦手なんだけどやっぱ配列かなー
いつものは書くのが楽だけど見栄えがあんま良くない
Range("C1:C10000") = "=A1+B1"の部分を数式残さずWorksheetFunction一括で書けないかなーと思ってた
みなさんどうも
A 0.035
B 0.265
C 0.031
D 0.015
E 0.062
配列は頭がごちゃごちゃして苦手なんだけどやっぱ配列かなー
いつものは書くのが楽だけど見栄えがあんま良くない
Range("C1:C10000") = "=A1+B1"の部分を数式残さずWorksheetFunction一括で書けないかなーと思ってた
みなさんどうも
101デフォルトの名無しさん
2018/12/08(土) 21:12:06.71ID:KOgxZmAl 書き間違い
ans→計算結果格納配列
ans→計算結果格納配列
102デフォルトの名無しさん
2018/12/08(土) 22:34:44.30ID:Pds2yprW Range("c1:c10") = Evaluate("=a1:a10+b1:b10")
103デフォルトの名無しさん
2018/12/08(土) 23:08:03.54ID:KOgxZmAl104デフォルトの名無しさん
2018/12/08(土) 23:21:36.60ID:Q+l9Re6e105デフォルトの名無しさん
2018/12/09(日) 07:19:28.94ID:Pe0BknB8 データを蓄積、変更して管理するシステムをVBAで作るとして、普通、データとプログラムを分けるよな?
106デフォルトの名無しさん
2018/12/09(日) 08:55:53.41ID:BPsncq85 >>105
分けるけど、わざわざそういう質問するってことは現状データをBookに蓄積先してる状況なのかな?
入出力画面をExcel & VBAで作って、データはDBに蓄積するってのがこの場合の模範解答だと思うが。
分けるけど、わざわざそういう質問するってことは現状データをBookに蓄積先してる状況なのかな?
入出力画面をExcel & VBAで作って、データはDBに蓄積するってのがこの場合の模範解答だと思うが。
107デフォルトの名無しさん
2018/12/09(日) 21:01:53.98ID:F2zjByp1108デフォルトの名無しさん
2018/12/10(月) 12:24:50.65ID:F1/sCBz9 >>96
おまえが2〜3年前に知ったからってなんで勝手に一般化して皆そうだと思うんだよ
おまえが2〜3年前に知ったからってなんで勝手に一般化して皆そうだと思うんだよ
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 高市首相、トランプ米大統領に「早期に会いたい」 日中関係悪化受け… [BFU★]
- 【コメ】卸売業者「簡単に安売りできない」「大暴落起きれば大赤字に」 JA「新米の販売進度が近年になく遅い。コメの回転が悪い」 ★3 [Hitzeschleier★]
- 【将棋】福間香奈 女流六冠が会見 妊娠・出産でタイトル戦の事実上不戦敗 「妊娠したら、どちらか一方を諦めないといけない状況」★2 [冬月記者★]
- かつや、明日からカツ丼(竹)790円→590円、ロースカツ定食830円→630円、カツカレー(竹)990円→790円 画像あり [お断り★]
- 【配信】TikTokで収益化を剥奪される日本人クリエイターが続出 [muffin★]
- 【コメ】卸売業者「簡単に安売りできない」「大暴落起きれば大赤字に」 JA「新米の販売進度が近年になく遅い。コメの回転が悪い」 ★4 [Hitzeschleier★]
- 高市早苗、トランプおやびんに泣きつくwwwwwwwwwwwwwwwwwwwwwwww [834922174]
- 防衛省「了解は言っていない」 [966095474]
- 企業・団体献金の規制強化をめぐる党首間協議について高市「引き継ぎ受けてないし知らん。約束ではない。野田も誘ってくれないし」 [389326466]
- 【定期】暇空 [455031798]
- ケンモメンってなんでこんなに反日が多いの? [866936191]
- 中国、日本人tiktokの収益剥奪開始wmwmwmwmwmwm [834922174]
