Excel VBA 質問スレ Part33
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2013/10/17(木) 22:04:40.64___
___ /____ヽ ____
/____\ | |´・ω・`| | /___ヽ
.l |´・ω・`| ニX二 . ̄ ̄ ̄ 二X二 |´・ω・`| l 俺たちに任せろ
!、 ̄ ̄ ̄ ヽ | | /  ̄ ̄ ̄/
ヽ_/ヽ、 ヽ__) \__/\_/. /_/ ノヽ_/
 ̄  ̄ ̄
前スレ
Excel VBA 質問スレ Part32
http://toro.2ch.net/test/read.cgi/tech/1381151717/
このスレはコード書き込みOKです。
作成依頼もOKですが、作成依頼限定ではありません。
コードが嫌な人はこちらのスレへ
http://toro.2ch.net/test/read.cgi/tech/1381151995/l50
0467デフォルトの名無しさん
2014/04/23(水) 12:31:02.08ID:ZM+hJQprほい
PowerShellの出力をワートシートのA列に取り込むサンプル
' OpenProcess
Declare PtrSafe Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Const SYNCHRONIZE = &H100000
' WaitForSingleObject
Declare PtrSafe Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long
Const WAIT_OBJECT_0 = &H0
' CloseHandle
Declare PtrSafe Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Sub sample2()
Dim hProcess As Long, lret As Long
lret = Shell("powershell ""Get-WmiObject -Class Win32_LogicalDisk|Clip""", vbHide)
hProcess = OpenProcess(SYNCHRONIZE, 0, lret)
Do Until WaitForSingleObject(hProcess, 100) = WAIT_OBJECT_0
DoEvents
Loop
lret = CloseHandle(hProcess)
Cells(1, 1).Select
ActiveSheet.Paste
End Sub
0468465
2014/04/23(水) 15:48:54.72ID:05nonx0d>>467
返信ありがとうございます。
>>467
試したのですが、ネットワークドライブのリモート名に日本語が含まれている場合は?に化けてしまい、うまく回らない状況です。
(含まれていない場合はうまくいったのですが)
0469デフォルトの名無しさん
2014/04/23(水) 18:28:55.92ID:ZM+hJQprShell("powershell ""$OutputEncoding = [console]::OutputEncoding;ほげほげ
0470465
2014/04/25(金) 00:24:01.06ID:dAeKMCVg返信ありがとうございます。
>>467
Declareのところだけ既に同名の宣言をしてあったのでそれを活かす形式にし(何故かPtrSafeがうまくいかなかった)、
$OutputEncoding =〜も使わせていただいたところ、
今のところ問題なく回っています。
皆さんご協力ありがとうございました。
助かりました。
0471デフォルトの名無しさん
2014/04/25(金) 00:48:38.11ID:97MfQF5yPtrSafeは64bit環境
0472デフォルトの名無しさん
2014/04/25(金) 19:43:27.59ID:IKtZUAxCシート名「uriae」の
F2に入っている関数をF列の下へ向かってオートフィル
で関数をコピーしていくVBAをお願いします。
関数のコピーは、同じシートのA列に文字が入力されているので
A列の文字が入力されている最終行までコピーしたいと思います。
0473デフォルトの名無しさん
2014/04/26(土) 01:31:25.36ID:w0bO41GVここは質問スレであって作ってくれる場所じゃないから
まずは自分でどうやろうとしたかを書いてみればいいと思うんだ
0474デフォルトの名無しさん
2014/04/28(月) 01:08:06.58ID:Z51g+zsH0475デフォルトの名無しさん
2014/05/05(月) 00:35:51.93ID:UkI77+Fd<やりたいこと>
・セルに商品NOを入力して、そのセルがロストフォーカスしたタイミングで、
入力された商品NOで別シートの商品表から、商品名をもってきたい。
<困っていること>
"Worksheet_Change"イベントを使用して、ロストフォーカスのイベントを
拾うことはできたが、ロストフォーカス前に選択されていたセルの内容を
拾えない。
(ActiveCell.Valueで取得しようとしたが、ロストフォーカス後に選択された
セルの内容を取得してしまう。)
もしよい方法があれば、ご教授いただけませんでしょうか。
0476デフォルトの名無しさん
2014/05/05(月) 01:55:30.65ID:uFaF33P2SelectionChangeイベントで、カーソルが動くたびにセルの座標をいちいち独自の履歴に溜めていく
だけど普通は商品NOが確定すると同時にChangeイベントで商品名をセットするもんだよ
ワンテンポ遅らせる理由がわからない
初心者ならなおさらセオリー通りにやった方がいい
さらに言えば、商品名をセットする程度の処理ならVBAを使うまでもなくVLOOKUPとかで可能だし
0477デフォルトの名無しさん
2014/05/05(月) 04:35:04.82ID:UkI77+Fdvlookupなんていう関数あったんですね・・・
これで解決できそうです!
ありがとうございました!
0478デフォルトの名無しさん
2014/05/05(月) 18:42:40.78ID:AK1zskjWSheet1のA列から下へ取得したい先のURLが入力されていて、クエリでデータを取得し、新しいシートA1に貼り付けする。
Sheet1のA列のセルが空白になれば処理を終了する。
VBAでクエリを実行する事が出来る所までは出来たのですが、上記の様にしたいのですが知識が乏しく躓いています。
今、出来ているのは下記になります。
Sub クエリ抽出 ()
With ActiveSheet.QueryTables.Add(Connection:= _
"url;取得データがあるURL", _
Destination:=Range("A1"))
.WebSelectionType = xlSpecifiedTables
.WebFormatting = xlWebFormattingNone
.WebTables = "1"
.Refresh BackgroundQuery:=False
End With
End Sub
宜しくお願いします。
0479デフォルトの名無しさん
2014/05/11(日) 20:01:24.57ID:0QNYDm24参照元のないセルにデータ(数式ではない)を入力したときに循環参照のエラーが出てしまうんだけど、EXCEL 2010にはそういうバグがありますか?
参照先のセルを見てもさっぱり原因がわからなくて困ってます。
周辺のセルはオートフィルで埋めてるので数式は大差ないのに、ある一つのセルだけどうしてもエラーになってしまいます。
0480デフォルトの名無しさん
2014/05/11(日) 20:34:18.27ID:9n+Ded1dExcel総合相談所 113
http://toro.2ch.net/test/read.cgi/bsoft/1398901813/l50
ってのがあるけど
0481デフォルトの名無しさん
2014/05/11(日) 20:39:46.70ID:0QNYDm24ありがとうございます。そちらで質問させていただきます。
0482デフォルトの名無しさん
2014/05/11(日) 21:08:18.06ID:valH51XCフォルダに画像がたくさんあります。
これをWord文書の1ページに1枚貼り付けたいです。
貼り付け方は左上に合わすだけでいいのでたぶんそんなに設定はしなくていいんじゃないかな。
貼り付け方も行内でも四角でもどちらでも変わらないと思うし。
でも今後の発展のため仮に画面の中央のどまんなかにあわせ、挿入方法は「四角」だとどうなるでしょう?
幅・高さは、どちらかが外周に接するところまでひきのばし/縮めるとします。縦横比はオリジナルと同じにして。
ExcelVBAからでもCreateObject("Word.Application")みたい感じでWordを操ることができると思うのでお願いいたします。
0483デフォルトの名無しさん
2014/05/11(日) 21:09:51.81ID:valH51XCExcelのセルにあらかじめ書き込んでるとしましょう。
0484デフォルトの名無しさん
2014/05/12(月) 01:23:50.26ID:DXQGbXMrVBAの講習を受講して思ったが、簡単な実務に生かすために、短時間で習得するための方法。
これあってますか?
★マクロを組んで、マクロで処理できない条件処理の構文を追加することを覚えることが、
一番楽で簡単なエクセル処理には向いてますか?
それとも、すべて手打ちすることを覚えるほうが、かなり有用ですか?
状況
簡単なマクロ等の自動処理がしたい。
スキルは、VBAの勉強は講習で30時間ほど。まったく身につかなかった。
関数等は普通に使える。
0485デフォルトの名無しさん
2014/05/12(月) 11:17:08.22ID:tYXPKjS8実務に活かす事が目的なら今の仕事を自動化するにはどうればいいかを考えれば良いと思う
>すべて手打ちすることを覚えるほうが
ってのが何を言ってるのかわかんないけど。
0486デフォルトの名無しさん
2014/05/12(月) 13:02:48.27ID:OiSoC7y/0487デフォルトの名無しさん
2014/05/12(月) 22:03:47.06ID:1mlAXgHL要は「簡単なマクロ等の〜」簡単がどこまでかでしょう。
最初はきちんと教えてもらった方がいい。
観念的だが、ゼロ→1は難しく1→2は比較来容易
0488デフォルトの名無しさん
2014/05/13(火) 02:43:20.87ID:/l0lTNTz30時間も講習うけてまったく身につかなかった人だぞ
うける講習まちがってるか、絶望的に向いてない人かどっちかだ
0489デフォルトの名無しさん
2014/05/13(火) 11:32:08.29ID:VmzA9yq/マクロの自動記録をして
自動記録では処理が出来ない条件分岐等をVBAで追加するという方法が、
エクセルでの処理の自動化には有効ですか?
それとも、自動記録に頼らず、
全てVBAで記述することを覚えたほうが良いでしょうか?
ということだと思う。
俺なりの回答としては、自動記録を使おうが使うまいが
VBAの基本的な知識はどっちみち必要だし是非覚えるべき。
VBAで出来て自動記録で出来ないことはたくさん有るけど
自動記録で出来てVBAで出来ないことはない。
もちろん、自動記録で出来ることならVBA使わずにやったって構わないし、
自動記録で記録したほうがコード手書きするより早い場合もある。
でも、VBAを知ってないと
やりたい作業を自動記録でやるのとVBAでやるのと
どっちが楽かとか判断できない。
0490デフォルトの名無しさん
2014/05/13(火) 12:55:48.39ID:V6Rb20LOだからマクロの記憶はベースとなるものではなく、Excelオブジェクトの操作方法を調べる時ぐらいしか使わない
0491デフォルトの名無しさん
2014/05/13(火) 16:35:43.02ID:JkOdWH0gRange("D11").Select
Selection.End(xlDown).Columns("H").Select
ActiveCell.FormulaR1C1 = "1"
End Sub
(H列,Dの最終行)に1を入れたいんですが(K列,Dの最終行)になってしまいます。
どうすればいいんでしょうか。
0492デフォルトの名無しさん
2014/05/13(火) 16:49:49.69ID:VmzA9yq/ってところが問題
これだとSelectionが"D11"で、.End(xlDown)がそこからの最終行(つまりD列の最終行)となるんだけど、
次の.Columns("H").Selectはそこを1列目(A列)として右に8列目(H列)
(つまりD列の7列右でK列)を選択している。
解決方法はまぁとりあえず.Columns("E").Select とか .Columns(5).Selectにしたり、
列の指定と行の指定を別々にやったり色々ある
0493デフォルトの名無しさん
2014/05/13(火) 18:00:38.46ID:JkOdWH0g0494デフォルトの名無しさん
2014/05/13(火) 18:51:25.04ID:r+9o8GUq行と列の二次元だけれど、配列は1次元とします。(順番はどうでもいい。セル範囲のセル数が要素数となる。)
0495デフォルトの名無しさん
2014/05/13(火) 18:52:46.12ID:r+9o8GUq0496デフォルトの名無しさん
2014/05/13(火) 19:01:16.72ID:VmzA9yq/列と行を別々に指定する。
つまり、列はH列で決まってるわけだから
Cells(Selection.End(xlDown).Row, "H").Select
とかでいいじゃん。
Selection.End(xlDown).Row
で、Selection(つまり"D11")から下に探した行を取得して、それを指定
列はそのまま"H"でH列を指定
ということ
0497デフォルトの名無しさん
2014/05/13(火) 19:08:16.70ID:JkOdWH0gありがとうございます
0498487
2014/05/13(火) 21:08:23.50ID:wn45zDPAすまん、30分と間違えた
0499デフォルトの名無しさん
2014/05/13(火) 21:32:17.40ID:ph3+WM+5まぁ手書きで
0500デフォルトの名無しさん
2014/05/14(水) 15:02:32.44ID:CuHF+7gT検索してみたら、同じ様な事をしたい人が居たのですが、解決には至っていませんでした。
どうか、宜しくお願いします。
0501デフォルトの名無しさん
2014/05/14(水) 17:08:56.86ID:ZCY9UWx+実行するたびにシートが増えるが、そこはどうにかしろ。
Sub foo()
Dim r As Range
Dim sheet As Worksheet
For Each r In Range("A1").CurrentRegion
Set sheet = Worksheets.Add
クエリ抽出 sheet, r.Value
Next
End Sub
Sub クエリ抽出(ByRef sheet As Worksheet, ByVal url As String)
With sheet.QueryTables.Add(Connection:= _
"url;" & url, _
Destination:=sheet.Range("A1"))
.WebSelectionType = xlSpecifiedTables
.WebFormatting = xlWebFormattingNone
.WebTables = "1"
.Refresh BackgroundQuery:=False
End With
End Sub
0503デフォルトの名無しさん
2014/05/17(土) 08:01:53.07ID:nXU1UeAN普通のはUBoundでいけるけど、2次元だと詰んでる。
0504デフォルトの名無しさん
2014/05/17(土) 08:07:13.92ID:bGHl19aa0505デフォルトの名無しさん
2014/05/17(土) 08:10:05.17ID:q+MS9gLN0506500
2014/05/17(土) 09:11:27.80ID:kSvc6BWF実際に動作を確認しました。
シートが一枚一枚、増えるのはこちらの希望通りで、問題ありません。
期待していた通りになってくれました。大変助かりました。
重々、お礼申し上げます。ありがとうございました。
0507デフォルトの名無しさん
2014/05/17(土) 18:55:01.51ID:nXU1UeAN2次元配列の要素数を動的にして
あとでReDimで変更するにはどうしたらいいですか?
2つのうち両方とも変更したいです。
0508デフォルトの名無しさん
2014/05/17(土) 19:03:56.16ID:q+MS9gLNそんなもん自分でやってみりゃいいじゃん
なんでもかんでも聞くなよ
Sub test()
Dim a()
ReDim a(3, 3)
ReDim a(5, 5)
End Sub
さあ、どうなった?
0509デフォルトの名無しさん
2014/05/17(土) 19:54:30.60ID:nXU1UeANあれ、できるじゃないか。
おかしいな。
2次元動的配列は、最終の2次元目のみ要素数を変更できると書いてあったのに。
0510デフォルトの名無しさん
2014/05/17(土) 19:57:07.95ID:nXU1UeANSub test2()
Dim a() As String
ReDim a(3, 3)
ReDim Preserve a(5, 5)
End Sub
0511デフォルトの名無しさん
2014/05/17(土) 20:48:25.73ID:q+MS9gLNヘルプぐらい読め
ていうかまず一番にヘルプを読め
ヘルプでわからなかったらググれ
それでもわからなかったら人に聞け
0512デフォルトの名無しさん
2014/05/17(土) 21:35:47.99ID:nXU1UeAN詰んでる。
0513デフォルトの名無しさん
2014/05/17(土) 21:43:18.79ID:E1N9nGHaPreserve付きのRedimは次元数は変更できず、最後の次元の要素数のみ変更できる
0514デフォルトの名無しさん
2014/05/17(土) 22:28:57.78ID:q+MS9gLNExcelが入っててヘルプが入ってないわけないだろ
0515デフォルトの名無しさん
2014/05/17(土) 22:40:38.76ID:bGHl19aaRedimステートメント
http://msdn.microsoft.com/ja-jp/library/w8k3cys2.aspx
0516デフォルトの名無しさん
2014/05/17(土) 22:42:59.11ID:bGHl19aa0517デフォルトの名無しさん
2014/05/17(土) 23:06:02.53ID:q+MS9gLNhttp://msdn.microsoft.com/en-us/library/gg251578%28v=office.15%29.aspx
探し方が悪い気もするんだけど、ようわからん
0518デフォルトの名無しさん
2014/05/18(日) 11:25:50.87ID:f0QDfVejわかりやすいと思ってしまう俺はド素人なんだろうな。
0519デフォルトの名無しさん
2014/05/18(日) 11:52:19.34ID:rUx0aG1K想定外の動作をしてバグか仕様か自分の勘違いかわからない時は、結局はmsdnやヘルプを確認するしかない時もある
もちろん公式文書にも間違いはあるので注意が必要だけど、>>510みたいにヘルプにちゃんと書いてあることを
あたかも大発見みたいに書かれると萎える
0520デフォルトの名無しさん
2014/05/18(日) 16:00:29.34ID:1/it3LsY英語力の問題では?
0521デフォルトの名無しさん
2014/05/18(日) 16:47:32.55ID:0bx4PTQ0ヘルプやMSDNがわかりやすいと思ったら、だれもそんな解説書かないだろ
ヘルプみてわけわからんなら解説探せばいいけど、公式情報みるのは最低限必要
0522デフォルトの名無しさん
2014/05/18(日) 21:22:16.26ID:UBuQU1Du0523デフォルトの名無しさん
2014/05/18(日) 22:00:39.47ID:H/JD4vj2人間が訳したのは英語版の重要なところを
こっそりスッ飛ばしてる場合があるから要注意だ。
0524デフォルトの名無しさん
2014/05/21(水) 22:23:52.70ID:BFHFMym8ここに書いて手っ取り早く解答得るのがベスト。
0525デフォルトの名無しさん
2014/05/22(木) 17:38:55.74ID:OR1KcKew0526デフォルトの名無しさん
2014/05/22(木) 18:09:40.63ID:jxaWow300527デフォルトの名無しさん
2014/05/24(土) 10:53:14.15ID:eu02DRrY名前をつけて保存、で複数シートを1つのPDFに保存するコードを書きましたが
なぜか動く動きません。
Sheets(Array("Sheet1", "Sheet2", "Sheet3")).Select
Sheets("Sheet1").Activate
ActiveSheet.ExportAsFixedFormat type:=xlTypePDF,
Filename:= "C:\Sheet123.pdf", Quality:=xlQualityStandard, IncludeDocProperties:=True, _
IgnorePrintAreas:=False, OpenAfterPublish:=True
Arrayで最初に選択したシートのみが出力されてしまいます。
2行目の Sheets("Sheet1").Activate を削除しても結果は変わらずでした。
マクロで記録しても、上記と同様のコードが記録されます。
しかしこの記録されたマクロを実行すると、やはり最初に選択したシートしかPDF出力されません。
何が足りないのでしょうか?
0528527
2014/05/24(土) 10:56:45.70ID:eu02DRrYウィンドウを複数開いてたのが原因でした
0529デフォルトの名無しさん
2014/05/25(日) 22:23:52.52ID:8sEJJ/Xn0530デフォルトの名無しさん
2014/05/25(日) 22:24:17.44ID:8sEJJ/Xn道→未知・・
0531デフォルトの名無しさん
2014/05/26(月) 10:24:59.73ID:xBqIirxp成功はしないけど
0532デフォルトの名無しさん
2014/05/26(月) 12:13:08.87ID:ptXAqcmg後から来る人に追い越される
0533デフォルトの名無しさん
2014/05/26(月) 12:26:24.18ID:dlApJPlMその計算に必要なリソースが確保できるなら可能
0534デフォルトの名無しさん
2014/05/26(月) 15:34:56.33ID:EGdbrytd0535デフォルトの名無しさん
2014/05/26(月) 19:57:34.24ID:dlApJPlM挑戦出来るかどうかと聞いてるから、そこは問題にならない
0536デフォルトの名無しさん
2014/05/26(月) 20:30:26.14ID:9XuuTI4Khttp://it.impressbm.co.jp/articles/-/10453
D-Wave はコンピュータではないらしい。
計算を高速化する独自の数式や手法を発見すれば現在のExcelでも可能?
0537デフォルトの名無しさん
2014/05/26(月) 20:39:03.08ID:JsbqvBWY手に入るだけの台数の高速なPC(数千・数万台とか)とExcelで並列処理させればできるか?
VBAが何所まで並列処理にむいているかはやったことが無いのでわからんが。
0538デフォルトの名無しさん
2014/05/26(月) 20:51:31.05ID:LCv9Wl+AVBA は 64KB 壁があったりして棘の道だと思うが君ならきっとやれる。
0539デフォルトの名無しさん
2014/05/26(月) 23:11:20.50ID:Ed2uGBCoこれってもう古いの?
どこ探してもよくわからない
おすすめの本ってある?
0540デフォルトの名無しさん
2014/05/26(月) 23:43:24.09ID:7NSDbYse質問の意味が良くわからない
何を自動化したいのか
「オートメーション」という言葉を何か勘違いして受け取っているようにも見える
0541デフォルトの名無しさん
2014/05/26(月) 23:47:12.46ID:Js6v2rIN0542デフォルトの名無しさん
2014/05/27(火) 11:36:41.29ID:CQuE4vUSほかのプログラム言語覚えるとなにかいいことありますか?
VBAじゃ出来ないことある?
0543デフォルトの名無しさん
2014/05/27(火) 12:10:21.53ID:pK8lgo+nもちろんVBAにできないことはたくさんあるけど、他の言語にもそれぞれ苦手な分野があるんで
自分のやりたいことがVBAじゃ大変だとわかってから、その作業に最適な言語を探した方が無駄が少ないかもね
0544デフォルトの名無しさん
2014/05/27(火) 12:29:28.96ID:CQuE4vUSそうですかぁ
目的はっきりしないうちに、
ほかの言語覚えるのも大変ですよね・・
VBAの限界がみえるまではVBAだけで行きます!
0545デフォルトの名無しさん
2014/05/27(火) 12:39:03.97ID:JkwAmhtqJAVAとかCとかだと求人が多いけどVBAじゃ求人が少ないから
つぶしが利かない
0546デフォルトの名無しさん
2014/05/27(火) 12:44:54.08ID:CQuE4vUSなるほど、
仕事じゃなく個人で使うだけならVBAで十分かな?
足りなくなったら、DLL?とかほかの言語で作って、
VBAで呼び出せばいいか・・
0547デフォルトの名無しさん
2014/05/27(火) 13:18:47.16ID:1WWRQ+ydグラフとか後でくっつければ良いだけだし
sheet1、使い方の説明とか入力用
sheet2、出力用テンプレート
sheet3以降、出力先
って感じで作れば、使い方とか後で訊かれる事も少ない
インターフェイスの設計とか悩まなくて済むのはメリット
0548539
2014/05/27(火) 21:24:50.12ID:ynAF/lreExcelに数値を入れてCADでそれに沿った図面を作成したいのです。
OLE自体をあまり理解してないのですが、
アプリケーション自体が公開しているメソッド(CADでもソフトによって違う)
を使用するということでしょうか
0549デフォルトの名無しさん
2014/05/28(水) 06:25:58.57ID:am2JQYojOLEオートメーションって言葉は古いな。間違ってはないが
VBAの命令としてはそのCADソフトのオブジェクトを生成するCreatObjectって言う命令だけ
それ以外は普通のEXCEL VBAの入門書でだいたい事足りるかと
あとはそのCADソフト側で用意されてるメソッドなり何なりを操作する
それはそのCADソフト側の問題なんでそっちに聞いてください
0550デフォルトの名無しさん
2014/05/28(水) 09:41:47.76ID:BSb9yGb4VC++だったけど
CAD側の文字コードに注意してやらないと、文字化けとか大変な事になる予感
使い方としては、549の言ってる通りでいけると思うけど、
Excelで数値入れるのが果たして使いやすいかというと、
実はそうでもなかったりしがちになるので、
必要な要件はきっちり洗い出す必要あると思うよ
0551デフォルトの名無しさん
2014/05/28(水) 11:36:19.19ID:tvrcqpPe0552デフォルトの名無しさん
2014/05/28(水) 11:42:23.21ID:mspF09G90553デフォルトの名無しさん
2014/05/28(水) 11:52:24.90ID:tvrcqpPe0554デフォルトの名無しさん
2014/05/28(水) 16:09:51.90ID:PxoSlPb7Application.ScreenUpdating で 抑えられたが
それでもタスクバーがちらついて困っていた。
タスクバーのちらつきは Application.ShowWindowsInTaskbar
で抑えられるのが分かった。
ShowWindowsInTaskbar って昔からありましたっけ?
0555デフォルトの名無しさん
2014/05/28(水) 18:00:58.65ID:pq9FJS3g> ShowWindowsInTaskbar って昔からありましたっけ?
なんでググらないの?
0556デフォルトの名無しさん
2014/05/28(水) 19:31:12.32ID:tvrcqpPeその中にあるセルで
(1) 空白なら除外する
(2) 同じ値があれば1つを残して他は除外する
の操作をしたあと
各セルの値をString型の配列変数として入れたいんです。
そのためにはどういうコードを書けばよいでしょうか?
さあ、書きなさい。
0557デフォルトの名無しさん
2014/05/28(水) 19:51:40.59ID:6RxarYIUVBA以外の言語とデータをやり取りするにはどうすれば良い?
0558デフォルトの名無しさん
2014/05/28(水) 20:35:31.75ID:aALl0WxcVariant型はExcelやVBAだけで使える型じゃなくてWindowsシステム全体で定義されてるんで
たいていの言語でそのまま扱うことができる
0559539
2014/05/28(水) 21:11:33.80ID:tkho5s2n詳しい解答ありがとうございました。
非常に分かりやすかったです。
描くのは直線だけでなるものなので業務の時間を短縮できるのかなと。
あとはCADソフト側の命令の仕方ですね、頑張って探してみます。
ありがとうございました。
0560デフォルトの名無しさん
2014/05/28(水) 23:52:38.39ID:am2JQYojあるセル範囲を選択してて
その中にあるセルで
(1) 空白なら除外する
(2) 同じ値があれば1つを残して他は除外する
の操作をしたあと
各セルの値をString型の配列変数として入れる
こういうコードを書けばよいよ
要件定義が甘いが、どこがわからんかわからん
0561デフォルトの名無しさん
2014/05/29(木) 00:20:40.78ID:pIxlUzsMDictionary使うのはどう?
Existで調べて、無かったらAdd
これを繰り返して最後にString型の配列変数に入れる
0562デフォルトの名無しさん
2014/05/29(木) 00:22:14.59ID:pIxlUzsM× Exist
○ Exists
0563デフォルトの名無しさん
2014/05/29(木) 08:48:17.68ID:/DaeRAwKDoEvents
Sleep (100)
Loop Until flag = True
な無限ループをイベント監視用にユーザーフォームで走らせているんですが,
フォームのタイトルバーを捕まれるとループが止められてしまいます。
ループ用にvbModelessなフォームをHiddenで隠して回しても,
他のフォームのタイトルを捕まれると止まってしまいます。
タイトルを捕まれてもマクロが止まらなくなる方法ってありますか?
0564デフォルトの名無しさん
2014/05/29(木) 12:02:11.02ID:Amp5ddSEありがとうございます。
あなたはこのスレにときどき登場するDistionary厨のかたですね?
これを機会にDisctionaryの使い方を理解してマスターしようと思うのですが
いいサイトか本はないでしょうか?
0565デフォルトの名無しさん
2014/05/29(木) 14:29:26.90ID:sq7Ykhg/残念ながらExcelVBAはマルチスレッドに対応しておりません
というか、止められると言っても、終了してしまうのではなく中断するだけだろ?
タイトルバーを掴んでいる間さえも中断しちゃまずいって、いったい何を監視しているやら?
それに、ユーザーフォームの移動なんて、そう頻繁に行うことでも、長時間行うことでも無いじゃん
それとも、自分が使う物ではなく他人が使う物で、タイトルバーを掴んだままにすることで
意図的に監視を一時停止出来ちゃうと困るとかなのかな?
だとすれば、パス掛けたところで簡単に破れて、ソース弄れば監視の無効化も、もっと簡単に
一時停止できるようにすることも可能なVBAでそういうものを作ること自体が不適切
それに、タートルバーを掴んでいる間、つまりExcelの操作をしていない間も監視が必要って事は、
監視対象はExcel上のものではないんだよね?
だとすると、その辺に別の対処法の突破口があるかもしれないな
0566デフォルトの名無しさん
2014/05/29(木) 15:11:02.01ID:dLhscPPSSleepを消せば少し改善されると思う
空のループはDoEventsだけで十分
■ このスレッドは過去ログ倉庫に格納されています