Excel VBA 質問スレ Part51

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (スププ Sd4a-O827)
垢版 |
2017/11/08(水) 11:26:30.13ID:+KUB1/9hd

スレ立ての際は一行目に
!extend:checked:vvvvv:1000:512
と入れてスレ立てして下さい

ExcelのVBAに関する質問スレです
コード書き込みや作成依頼もOK

※関連スレ
VBAなんでも質問スレ Part2
http://mevius.2ch.net/test/read.cgi/tech/1432173164/
Access VBA 質問スレ Part1
http://mevius.2ch.net/test/read.cgi/tech/1328536426/
Excel総合相談所 126
https://mevius.2ch.net/test/read.cgi/bsoft/1496487719/

※前スレ
Excel VBA 質問スレ Part50
http://mevius.2ch.net/test/read.cgi/tech/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)
2017/12/17(日) 01:39:41.36ID:F05u2uwp0
誰がオブジェクト恥垢やねん!(´・ω・`)b
2017/12/17(日) 04:46:14.88ID:Hjh32hjm0
>>576
どゆこと?

例えばですね、他Bookにある画像をクリックしてそこにPopupが表示され、フィルタ処理を選びます。
で、フォーカスは対象テーブルのあるブック・シートに遷移して、フィルタリングに成功します。
SDIなので画面上は呼出元ブックとテーブル用ブックが2つ並んでおります。
ここでScriptは完了するわけですが、追加の操作をするために、遷移先シートを明示的に選択。
明らかに自分はその目的のシートを選んでいます。
ここでImmediateから、ActiveCell.Address(external:=True)をたたくと明らかに今触っているセルの番地が、Book名、シート名、セル番地名のフルパスで戻ります。
ここでカレントセルのある範囲を選択反転してCopy操作を行うと、呼出元ブックの同じセル番地がコピーモードの破線矩形にかわるんです。
カーソルで下へスクロールすると、呼出元シートもリモコンで操作しているみたいに一緒にスクロールするんです。
削除操作も、、、、同一ファイルで操作している時は気づかなかったですが、別ファイルから行うと凄いびっくりなビジュアルが展開されます。
明らかに "ActiveCell" という状況が表と裏に分離されたような状態になるんです。
同じブックをWin7+Excel2010で操作した場合は起きません。
自ファイルだとSendKeysで逃げられるんですが、外部ファイルからシート切替しても呼出元が切り替わってしまって、、
テーブル側ブックがキー操作相当でシート切替されないとこの状態が解除されないみたいです。
2017/12/17(日) 05:09:02.50ID:/bdPdb8E0
>>578
とりあえずActiveSheetとかSelectionとか使わない方法で実装するのはダメなの?
あと同時に実行されるマクロは全て同じブックに入れておくべきだと思うよ。
2017/12/17(日) 06:51:48.24ID:Hjh32hjm0
>>579
(その6)
Debug用と問題回避のためにActiveCellを記述していますが、実際のコードでは使用していません。
>>558のSelectionはコードの中に記述しているわけではなく、検証用の画像ボタンを登録する手順としてImmediateから実行しているだけです。極力BackEndから操作する派です。

実際の運用Bookでは極力同一ファイルにMacroを集めています。
Macro自体は仕事を完全に全うするのですが、、、そのあとシートの状態がおかしくなるという現象です。
状態を解消するには、呼出先のBookでシート切替を行う方法のみ。

で、発想を変えて、「外部から制御できないか」と考えました。
VBE内にVBSScriptを記述し、「中の外」からシート選択してみようと。
結果NG、再現してしまいました。

じゃあ、本当に外から制御すればどうかな?と思い、上記のVBScriptを同一フォルダに置いて呼び出す作戦に。
2017/12/17(日) 06:52:33.95ID:Hjh32hjm0
>>579
(その7)
--------------------------------
[Popupから呼び出すProc]
Sub DoFilter()
 Sheets("List").Select
 Sheets("List").Range("$A$1:$C$5").AutoFilter Field:=1, Criteria1:="TEST"
 Call = Shell("wscript " & ThisWorkbook.Path & "\SelectSheet.vbs", vbHide)
End Sub
--------------------------------
[SelectSheet.vbsの中身]
call SheetSelect_fromVBS
Sub SheetSelect_fromVBS()
 Dim xlApp: Set xlApp = GetObject(, "Excel.Application")
 With xlApp
  .Workbooks("ListBook.xlsm").Activate
  .Worksheets("List").Select
 End With
 Set xlApp = Nothing
End Sub
--------------------------------
なんとこれが功を奏し、ActiveSheetの幽体離脱状態から抜け出すことができました。
シート切替も不要に。これで一先ず凌げそうですが、MSには不具合対応してもらいたいです。
コメントいただいた方々、ありがとうございました。
2017/12/17(日) 06:55:18.78ID:Hjh32hjm0
>>581
あれ、一部書き間違えました。実際は、、

 Call Shell("wscript " & ThisWorkbook.Path & "\SelectSheet.vbs", vbHide)
583デフォルトの名無しさん (ワッチョイ d2af-8sno)
垢版 |
2017/12/17(日) 10:32:12.89ID:e1NNF66l0
つまりここでは
なんの型にはめるのか?
命令は?状態は?

だろ?
でもCellsってプロパティだろ?なんで一発で状態から入るんだ?
2017/12/17(日) 11:20:01.90ID:ZjZyIyTi0
>>583
Cellsはオブジェクトだ
そしてWorksheetオブジェクトやCellsオブジェクトのプロパティでもある

あと、ようやく時間ができたからWorkbookオブジェクトをVariantに代入しようとしたら当然のごとく「オブジェクトは、このプロパティまたはメソッドをサポートしていません。」になった。
一体何を試してパスが云々なんて話が出てきたんだろう。
Dim V As Variant
V = Workbooks(1)
→代入不可
Set V = Workbooks(1)
→VはVariant/Object/ThisWorkbook型
調べてみてもWorkbook型にデフォルトプロパティは設定してなさそう。
2017/12/17(日) 11:21:03.68ID:ZjZyIyTi0
>>584
訂正
CellsはRangeオブジェクトだ
そしてWorksheetオブジェクトやRangeオブジェクトのCellsプロパティでもある
586デフォルトの名無しさん (ワッチョイ d2af-8sno)
垢版 |
2017/12/17(日) 11:26:43.28ID:e1NNF66l0
>>585
cellsはrange?
意味わからない
プロパティでオブジェクトってなに?
もっとうまく説明してくんね?
2017/12/17(日) 11:27:13.71ID:gZkjaYao0
>>584
自分用語を使うどころかコードも正確にコピペできてないからそのまま実行しても無駄だぞ
エスパー力を全力で働かせて察してあげない限り回答しても罵倒が返ってくる
2017/12/17(日) 11:37:53.28ID:ZJu/+/V0x
>>583
メゾット君、プロパティだから状態というのは間違えやすい考え方だからこの際捨て去った方が良い
プロパティは呼び出し元プログラムに対してオブジェクトのクラス内部への変数へのアクセスを提供するもので、アクセス先の変数のデータ型はプリミティブな値であることもあれば、何らかのオブジェクトである場合もある
というか、オブジェクト式の途中で出てくるプロパティは全てオブジェクトへの参照を提供するプロパティだ

Cellsの場合はRange型のオブジェクトへのアクセスを提供するプロパティだが、Grobalのメンバプロパティだから上位オブジェクト式を省略して書けるわけ
589デフォルトの名無しさん (ササクッテロ Spc7-8sno)
垢版 |
2017/12/17(日) 11:46:44.41ID:gC8RO3PCp
>>588
カタカタ使うな
2017/12/17(日) 11:53:12.87ID:ZjZyIyTi0
>>587
そうだよな・・
自分でクラス作ってみれば一発で理解できそうなものだが・・
2017/12/17(日) 11:59:28.64ID:R4ec2g2Bx
>>590
あの質問者が自分でクラスを作れるようになるのって何年か先の話だろうな
592デフォルトの名無しさん (ササクッテロ Spc7-8sno)
垢版 |
2017/12/17(日) 12:11:00.98ID:gC8RO3PCp
クラス?
オブジェクトに必要な要素を全部埋め込むやつだろ?
もうできるよ?
でもnewクラスの使い方が意味がわからない
同じクラスで(中身も同じ)なら作る意味ないんじゃねえの?
2017/12/17(日) 12:19:09.45ID:ZjZyIyTi0
確かにこれでは何年も先の話になりそうだ
594デフォルトの名無しさん (ササクッテロ Spc7-8sno)
垢版 |
2017/12/17(日) 12:31:47.04ID:gC8RO3PCp
いま、クラスをみてみた
そしたらworkbookの中にworksheetsがプロパティとしていた
どういうことだ?
俺はVBAの盲点をついたか?
595デフォルトの名無しさん (ササクッテロ Spc7-8sno)
垢版 |
2017/12/17(日) 12:40:07.47ID:gC8RO3PCp
知りすぎたか?
596デフォルトの名無しさん (ササクッテロ Spc7-8sno)
垢版 |
2017/12/17(日) 12:51:28.57ID:gC8RO3PCp
dim i as long

For i = 2 To i.Cells(.Rows.Count, 1).End(xlUp).Row

このi.cellsの意味がわからない
教えてくれ
597デフォルトの名無しさん (スプッッ Sd52-GTd9)
垢版 |
2017/12/17(日) 13:07:40.63ID:+CY9tzJPd
プロパティは内部変数へのアクセスに限らずいろんなこと出来るし、最初さっぱり理解できなかった。
まさかただのシンタックスシュガーだなんて想像してなかったからな。
2017/12/17(日) 13:23:13.67ID:R4ec2g2Bx
>>596
このコードは絶対にコンパイル通らないぞ
For i = 2 To i.Cells(.Rows.Count, 1).End(xlUp).Rowの意味なんてこっちが知りたいくらいだ
2017/12/17(日) 13:26:02.12ID:R4ec2g2Bx
>>594
Worksheetオブジェクトのメンバの、Worksheetsコレクションにアクセスするプロパティじゃん
何が不思議なの?
2017/12/17(日) 13:27:44.67ID:R4ec2g2Bx
New出来てないの笑える
クラスモジュールを挿入できただけでクラス使えるようになってねぇじゃん
2017/12/17(日) 13:51:38.17ID:5yg/jtY20
おそらく本職プログラマじゃなく事務の効率化でVBAに手出したんでしょ?
どうせ片手間ならプログラミング適性無さそうだからおとなしくコピペで済ますのが無難だと思う
たぶん永久に理解出来ないよ
602デフォルトの名無しさん (ササクッテロ Spc7-8sno)
垢版 |
2017/12/17(日) 14:08:08.04ID:gC8RO3PCp
>>598
正しいのはなに?


https://i.imgur.com/rE2ZahI.jpg
2017/12/17(日) 14:15:19.48ID:R4ec2g2Bx
>>602
自分で考えろよ、クラス作れるんだろ?w
2017/12/17(日) 14:17:42.01ID:KxwCW4kM0
最近オブジェクト指向の本読んでみたんだけど
これまで作ってきた稚拙なスパゲティコードをこの際書き直してみたくなった
2017/12/17(日) 14:25:27.85ID:R4ec2g2Bx
>>601
この人謙虚じゃないし、まぁ無理だろうな
素直に他人の文章やコードが読めず、自分の言語感覚だけで無理矢理白黒つけようとするだけの奴はそもそもプログラミングに向いてない
2017/12/17(日) 19:27:22.86ID:ZjZyIyTi0
>>604
今書き直しても、しばらくするとまた見識が増えて書き直したくなるだけやで
607デフォルトの名無しさん (ワッチョイ 5303-6+fO)
垢版 |
2017/12/17(日) 19:31:24.74ID:SRQ89yzu0
>>604
やめとき、もう一つ稚拙なスパゲティコードを作るだけやでw
魔道に堕ちた亡者どもはそれをリファクタリングと呼んでるらしいがなw
2017/12/17(日) 19:52:14.28ID:/bdPdb8E0
>>605
メゾット君は>>571の自演の通り、「○○が出来るなんて凄いヤツだ」って反応が欲しいだけでしょ。
その反応が欲しいだけだから本腰入れて勉強するつもりもないんだろうし、
彼の想像の中では、自分は「凄いヤツ」であり、それに反応する周囲は「凄くないヤツ」なので見下している。
見下している奴らと自分の意見がぶつかったら自分の方が凄いので自分が正しい。だから自分の考えに固執する。

要するにヒカルの碁とかハイキューとかボールルームとかの主人公みたいな展開を妄想してんだろ。
どんな反応をしても彼の妄想に付き合わされるだけだし、妄想が維持できなくなると死ね死ね言うだけになるから構うだけ無駄。
2017/12/17(日) 20:35:35.89ID:oSmkXHksa
>>605
プログラミングだけじゃなくありとあらゆることに向いてないだろうな
わからんのは仕方ないけど、最低限の態度がなってない
ネットだからなにやってもいい、って考えのやつはいずれリアルでもぼろが出るわ
2017/12/18(月) 00:39:13.70ID:mfb75Iey0
プロシージャにconstでいくつか定義してあってこれまで何も問題なく動いてきた
さっきその定数の一つを=22から=23に変更したら
定数式が必要です、のエラーが出る
どうみても何も問題ないようにみえて分からない
まさかと思いつつ
'Const sht_right As Integer = 23
Const sht_right As Integer = 23
このように問題の起きた行をコメント行として
すぐ下に書き直したらエラーがでなくなった
こういうのってあるもん?
2017/12/18(月) 02:00:09.91ID:rupxZ3Ov0
>>610
上の奴、本来のコードだと全角スペース入ってなくね
612デフォルトの名無しさん (ワッチョイ d223-AMYv)
垢版 |
2017/12/18(月) 02:32:05.22ID:m7yapXyd0
>>602
i.cells じゃなくて ws.cells
さらに、with ws が有るので ws が省略できるから
.cells で良い
2017/12/18(月) 03:17:17.83ID:7TDAIkSx0
>>610
99%は単なるタイプミス
等幅フォントでスペースが明示できるテキストエディタにコピペしてみる
2017/12/18(月) 06:23:46.35ID:TbHEuMcS0
どこかから、コピペした文字列に、見えない制御文字が入っているとか?
2017/12/18(月) 07:46:18.89ID:fX+okHt3M
>>610
その事例は見たことないけど、納得のいかないエラーが出たときは、とりあえずエクセル再起動
2017/12/18(月) 07:59:26.09ID:mfb75Iey0
>>611
>>613
>>614
と俺も思った
んで何度も打ち直してみた
ちなみに上に貼ったのはそのままコピペしたもの
2を3にしただけなんでね、よくわからん
>>615
再起動しなかったかもしれないんでまた起きたらやってみるわ


コメント行にしたもともとの行は削除しちゃったんで実験できなくてすまん
2017/12/18(月) 08:01:30.70ID:aXpCltYZ0
Constでエラー出した事あったけど、Endを実行してからやったら治ったことあるな。
値が記録されたままだったとかじゃね。
2017/12/18(月) 10:33:59.62ID:ueSdYdZDa
>>610
なんか、Enumでもそんなことがたまに起こるよ
VBEのバグらしいけど
619デフォルトの名無しさん (ササクッテロレ Spc7-8sno)
垢版 |
2017/12/18(月) 13:34:10.63ID:NqlVCppnp
VBAってどうやったら上達しますか?
エクセル関数は達人級です
エクセル関数みたいに慣れだけじゃ無理ですかね
2017/12/18(月) 13:43:31.23ID:IKrWJ0B8a
>>619
Javaを勉強したらvbaも上達するよ
621デフォルトの名無しさん (ササクッテロレ Spc7-8sno)
垢版 |
2017/12/18(月) 13:47:42.85ID:NqlVCppnp
>>620
JAVA押しさんこんにちわ
2017/12/18(月) 14:03:31.64ID:yddZnfruM
Java推しはともかく他の言語を学ぶのはVBAの上達にも実際かなり役立つ
2017/12/18(月) 14:45:58.67ID:c1zJrPAZp
(またメゾットくんだよ…)
2017/12/18(月) 16:14:09.20ID:D45Nh6pha
>>621
ジャワティーの話しはしてないんだ、ごめんな
625デフォルトの名無しさん (ササクッテロレ Spc7-8sno)
垢版 |
2017/12/18(月) 16:30:46.07ID:NqlVCppnp
VBAだけやればいい
javaは環境が大変だ
したいこともないし
2017/12/18(月) 16:48:04.05ID:D45Nh6pha
プログラムの上達に早道はないんだよなあ
というか、遠回りに思えることが早道だったりする
と、自戒の意を込めて
どうしてもエクセルと絡めたいならC♯でもいいけどな
627デフォルトの名無しさん (スプッッ Sd52-GTd9)
垢版 |
2017/12/18(月) 16:49:17.57ID:7XOqOvzzd
今のうちにPythonを学ぶ
http://www.publickey1.jp/blog/17/excelpython.html
2017/12/18(月) 17:57:32.74ID:pW3jV0rpa
ぱいそんってアメリカではもっともメジャーなスクリプト言語なんだっけ
2017/12/18(月) 18:15:03.66ID:fX+okHt3M
何故にPythonかと思ったらエクセルにPython組み込むって話が出てるんだな。勉強するか‥
630デフォルトの名無しさん (ワッチョイ 5303-6+fO)
垢版 |
2017/12/18(月) 19:14:05.94ID:/veb4c2e0
>>626
自己評価だとそう感じるのかもしれないけど
できる奴は最初からできるし、できない奴はいつまでたってもできない
プログラムってそういうもん
2017/12/18(月) 19:34:37.55ID:pW3jV0rpa
>>630
そりゃあ人によっちゃ違うが、それは才能があるからで近道しようとしてそうなってる訳じゃないだろ
わかんないことがあったら別の切り口から攻めると言うのもありじゃないの
2017/12/18(月) 19:45:01.61ID:au4G9Tq20
VBAerさんついに終わるのか
Pythonに駆逐されちゃうね
633デフォルトの名無しさん (ワッチョイ 5303-6+fO)
垢版 |
2017/12/18(月) 19:45:05.21ID:/veb4c2e0
>>631
ないとは言ってないよ
俺が言いたいのは、別の切り口から攻めようが近道しようが
既知の問題の解決策は知識として身につくが
未知の問題に対する解決能力は上げることができないって事

つまり上達とか意識しないで楽なやり方ばかり選ぶ奴がいつだって一番賢い
2017/12/18(月) 19:51:30.63ID:pW3jV0rpa
>>633
天才の人は苦にしないだけでちゃんと道は通ってるよ
635デフォルトの名無しさん (ワッチョイ 5303-6+fO)
垢版 |
2017/12/18(月) 19:54:37.06ID:/veb4c2e0
>>634
何を言いたいのかよくわからんがそもそも俺が言ってるのは天才のことじゃない
単にプログラムができる奴とできない奴の話なんだが
2017/12/18(月) 19:57:32.60ID:pW3jV0rpa
>>635
iqないとダメなのはプログラムに限らんし
まあスレチだから退散するわ
637デフォルトの名無しさん (ワッチョイ 5303-6+fO)
垢版 |
2017/12/18(月) 20:01:42.20ID:/veb4c2e0
>>636
いやだからIQとかの話じゃないってば
目の前の問題をありのままに受け入れる事ができる奴と
既に自分の中に構築された知識に当てはめないと解釈できない奴の違いだって
2017/12/18(月) 23:11:06.58ID:aXpCltYZ0
>>632
仮に採用されて皆がPython触るようになったら、今度はPython(笑)って扱いされる未来が見えるわ。
格好つけだけでやってる奴らが抜けて、AIとか作ってる真っ当なのが風評被害を受けそう。

言語は統一するよりも、それを扱うユーザー層毎に分けた方がいい。
2017/12/19(火) 12:28:53.96ID:/mb664F4a
>>616
俺も似たようなの見たことがある。
でも引きずるような問題じゃ無かったと思う。
Excel再起動かPC再起動で直るんじゃね?
2017/12/19(火) 12:37:10.24ID:pfZPHd/La
>>633
逆だと思うが。
未知の問題に対しての解決能力は上げることができる。
楽なやり方を選ぶ奴は上げられないだけ。
厳密には未知な問題といっても既知の問題と全く違うわけじゃない。
641デフォルトの名無しさん (ワッチョイ d2af-8sno)
垢版 |
2017/12/19(火) 16:48:29.82ID:mNLh8c+i0
ここのやつらがあんまジャバジャバいうから引っ張り出して着たわ

とりあえずコードは実行せずにパラ読みしようと思う

https://i.imgur.com/peDAurF.jpg
2017/12/19(火) 17:01:17.86ID:Bngslooy0
>>641
「わー、ロレックス持ってるなんてすごーい!」
「え?こんなの普通だよ。持ってないとかwww」

みたいな展開になる事を期待してるんだろうけど腕時計の入れ方が無理やり過ぎて笑いしか出てこないw
本は中古屋で買ったみたいだし、あまりにもちぐはぐ過ぎてむしろ格を下げてるようにしか見えないんだが。
643デフォルトの名無しさん (ワッチョイ 5303-6+fO)
垢版 |
2017/12/19(火) 18:14:51.58ID:J+VWEpvK0
>>640
うんだから最初に言ったんだけど自己評価だとそう感じるんだってば
644デフォルトの名無しさん (ワッチョイ d2af-8sno)
垢版 |
2017/12/19(火) 19:02:39.42ID:mNLh8c+i0
JAVAの本でわかったこと

変数の宣言と同時に値を入れることを初期化という
変数の値が変わらないことを定数という

いま10ページ目だけどこんくらいだわ
2017/12/19(火) 19:57:29.94ID:9tP52mqX0
>>644
>変数の値が変わらないことを定数という

これはちょっと違うのでは?
2017/12/19(火) 20:25:43.13ID:fLKwjLgZa
>>643
お前の自己評価がそう感じてるだけだろw
何か自分はプログラム書ける気になってるようだけどw
2017/12/19(火) 21:14:28.27ID:4AWSTK/ra
変数の初期かもなんかむずむずする理解だな
2017/12/19(火) 21:15:04.92ID:4AWSTK/ra
あ、でも彼はジャワティーの話をしてるのか
ならわからんでもない
649デフォルトの名無しさん (ワッチョイ d2af-iA8U)
垢版 |
2017/12/19(火) 21:26:16.08ID:mNLh8c+i0
javaのパスが通らなくて実行できない
助けてくれ
2017/12/19(火) 23:45:33.30ID:jfHXMkXp0
Java は環境構築が難しいから、初心者には無理

paiza.IO, codepad などのサイトで、ブラウザから実行しろ
2017/12/20(水) 00:20:41.41ID:USwfdD4Y0
別にJavaが難しいと感じたことはないな。
すっげえ昔にかじっただけだから今となっては初心者以下だけど。
いや、当時も初心者だったけど。
2017/12/20(水) 00:28:51.85ID:USwfdD4Y0
コンパイラもJavaで出来てるからJava実行環境でコンパイラ動かして、そのコンパイラへの引数にエディタで編集中のテキストを一時ファイルにしたものを渡してたな。
そのエディタもJavaで誰かが作ったものを機能拡張したやつだったな。
653デフォルトの名無しさん (アウアウカー Sa6f-MO8t)
垢版 |
2017/12/20(水) 00:40:50.45ID:xfg3gakwa
コマンドラインが敷居高いならeclipseでやれ
敷居高いつっても環境変数設定してそこにパス通すだけだがな
654デフォルトの名無しさん (ワッチョイ d2af-8sno)
垢版 |
2017/12/20(水) 01:00:50.98ID:sohN4awK0
javaって効率悪すぎだろ
テキストエディタで編集

名前つけて保存

コマンドプロンプトでコード入力

実行

どんだけ時間かかるんだよ
2017/12/20(水) 08:24:00.28ID:TZHE5kKsa
いやeclipse使えよ
2017/12/20(水) 09:28:33.38ID:FRuTBLwYp
これ以上はスレ違いなのでJavaスレでどうぞ
2017/12/20(水) 09:36:49.97ID:GPFg9WZwx
eclipseも知らないで手動でコンパイルしながらブチキレてるの想像してワロタ
道は遠いね
2017/12/20(水) 12:25:53.38ID:Vi8ViNgtd
スレチ
2017/12/20(水) 12:41:32.07ID:/dU/ndoRa
お前ら良かったな
EXCELでPythonが使えるようになるかも知れないんだって?
あれはObject指向の流れを組む関数型を目指しているところの言語っていうからやりがいはあるよね

俺もVB.NetやC#はやったけど
EXCELに載ることが確定したらこれからPython覚えるわ
まぁ構造化言語からObject指向型言語に移行したとき
めちゃくちゃ苦労したけど
今回も苦労するんだろうなぁ
2017/12/20(水) 13:38:58.93ID:/fbzm/vOa
Pythonはさらっと概要見たぐらいだけど面白そうだね
まあexcelにのらなくても勉強して損にはならんだろうな
661デフォルトの名無しさん (ワッチョイ 5303-6+fO)
垢版 |
2017/12/20(水) 15:31:22.90ID:EAMpcVD20
必要ないもん勉強したって時間のムダだっつーの
真のエクセルマクラーだったらマクロ書くのにパイソンしか使えなくなった時に必死でググれ
662デフォルトの名無しさん (スップ Sd32-GTd9)
垢版 |
2017/12/20(水) 16:07:26.91ID:/h7jUJynd
今のままでも関数型で出来るらしいが
https://qiita.com/matumoto_onga/items/7adfd4cf48288c477901
2017/12/20(水) 18:29:06.12ID:khkAeR460
Pythonはオブジェクト指向も関数型も全部後付けって感じでイケてねえ
F#にしとけって
でもこんなのはプログラマ以外が触るものだからしょうがないのかもな
2017/12/20(水) 19:00:00.85ID:sxNo8wqUa
>>663
F#ってまだ生きてんのか!
665デフォルトの名無しさん (スプッッ Sd52-GTd9)
垢版 |
2017/12/20(水) 19:51:25.83ID:7WhairgWd
生きてるし、活発に使われてるよ
ソースはない
2017/12/20(水) 20:52:44.38ID:EAMpcVD20
ソースはないソースはよ
667デフォルトの名無しさん (アウーイモ MM67-rH/H)
垢版 |
2017/12/21(木) 23:06:47.24ID:1PuX0k7mM
100列ぐらい続く計算エクセルがある
足したり引いたりするだけのエクセル。
酷くね?VBAにできないものか
2017/12/22(金) 02:00:09.18ID:T3zOnX2zx
>>667
計算エクセルっていう表現が意味不明だが要は計算用のワークシートのことか?
大抵の場合、ワークシート関数とテーブル機能を組み合わせて何とかする方がVBA使うより楽だぞ
車輪の再発明をしてもしょうがないからな
2017/12/22(金) 04:21:53.41ID:0EXQoFbJ0
質問です。
Excel側からVBE上の指定のプロシージャ記述欄にジャンプする動作をVBAで記述できる
でしょうか?
やり方がわからずとりあえずSendKeysを組み合わせて動作するようになったのですが
不慮の事故が起きそうで怖いです。
VBEのオブジェクトモデルに沿ったアクセス方法があれば教えていただけないでしょうか。
670デフォルトの名無しさん (スプッッ Sd1f-Eeo6)
垢版 |
2017/12/22(金) 07:49:35.63ID:BCzwPGy5d
>>669
VBE上でカーソルの位置をコントロールするってこと?
2017/12/22(金) 11:50:10.85ID:7Q1lZFEo0
>>670
メンテのためにActiveBookから全Procのリストを新規Sheetに出力する
Procedureを用意したのですが、Proc名からVBE上の該当Procにジャンプ
したく、右ClickEventにジャンプ機能を割り当てました。
正しいアクセス方法がわからないので、ほぼSendKesyのみで記述している
のですが、状況により意図しない挙動をします。

VBEを開く動作は "^{F11}"の代わりに
 Application.CommandBars.FindControl(ID:=1695).Execute
が使えそうなことはわかったのですが、、、
VBE上で1つもModuleが開かれていなかったり、開かれているModuleと、ツリー
側の選択されているModuleが異なったりすると、"^F"が効かないようです。
FrontEndからではなく、ObjectModelに沿ったBackEndからの操作が
知りたいのですが、うまく情報を見つけられないところです。
2017/12/22(金) 12:58:52.19ID:7Q1lZFEo0
>>669
自己解決しました。
キーワードを英語に切り替えてGGったら、StackOverFlowですぐ見つかりました。
.CodePane.GetSelection
.CodePane.SetSelection
あたりでなんとかなりそうです。お騒がせしました。
2017/12/22(金) 17:40:48.08ID:3J82DkVga
VBAやりはじめて三年ぐらいだけど、For Eachで普通の配列もループできるの今日知ったわ
コレクションだけだと思ってた
674デフォルトの名無しさん (スップ Sd1f-Eeo6)
垢版 |
2017/12/22(金) 18:05:37.66ID:/KqbyaeQd
>>673
値の取得だけで設定はできないけどねー
2017/12/22(金) 18:16:05.21ID:3J82DkVga
>>674
クラスの扱いが大分変わるのよ
わざわざイテレータ自作してたわ
2017/12/23(土) 00:05:26.91ID:/nzAEvVba
>>672
できるんだけどセキュリティ的に問題だからお勧めしない。
.netで書いた方が良いぞ。
でもVBEを操作するコードが書ければ、.net上でも殆ど同じコードでいけるから勉強しとくと良いかな。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況