Excel VBA 質問スレ Part50 [無断転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん 転載ダメ©2ch.net (ワッチョイ 7e6d-ffY6)
垢版 |
2017/08/27(日) 12:40:17.57ID:LjjEWylk0
!extend:checked:vvvvv:1000:512

スレ立ての際は一行目に
!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 質問スレ Part49©2ch.net
http://mevius.2ch.net/test/read.cgi/tech/1498410914/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
751デフォルトの名無しさん (ワッチョイ 7aeb-KyXl)
垢版 |
2017/10/24(火) 07:57:40.89ID:PJuVne9A0
>>747
タスクスケジューラで定期的に調べるコードを動かす
2017/10/24(火) 08:03:29.43ID:s8DNo2tea
>>747
恐らく無理じゃね
あったら知りたい
2017/10/24(火) 08:05:07.52ID:rZrDUnVP0
>>712は条件が不明すぎる上、質問者はいなくなってしまった
これ以上続けてもしょうがない
2017/10/24(火) 08:51:30.78ID:wGosvaz7d
アンケート入力してもらった内容を別シートのA1セルから下に書き込んでいく仕様です。そして、それが共有ファイルだとします。
共有の場合、同時にA1セルに書き込む可能性があります。
既に書き込みされていた場合、一つ下のセルに書き込むようにしてエラーを回避したいです。
どうしたら良いでしょうか
2017/10/24(火) 10:17:55.24ID:mH/THH+ia
>>754
共有をやめる
vbaでやれるなら共有にする意味を全く感じない
756デフォルトの名無しさん (ワッチョイ d681-0MKJ)
垢版 |
2017/10/24(火) 12:00:22.20ID:uQQcXNnv0
VBAのオートフィルタの構文について
構文例以下のコードになっているのですが、課題としては文字列の抽出で
オートフィルターを使用して、「商品名」が「パソコン(ノート)」のデータを抽出するコードを記述しなさい。
となっているのですが記述方法がわかりません。
教えてください。
C3からが商品名のオートフィルタになっています。
Dim TargetCompany As String
Dim StartDay AS Date
Dim EndDay AS Date

TargetCompany = "○○株式会社"
Starday = #10/1/2014#
Endday = #10/31/2014#

With ThisWorkbook.Worksheets("受注データ")
   .Range("B9").AutoFilter Field:=1,Criterial:">=" & Clng(StartDay)_
,Operator:=xlAnd,Criteria2:="<=" & Lng(EndDay)
.Range("B9".)AutoFilter Field:=2, Criteria1:=TargetCompany
End With
757デフォルトの名無しさん (ササクッテロロ Sp85-KyXl)
垢版 |
2017/10/24(火) 12:21:39.09ID:SXPDSp16p
>>754
webアプリにする
758デフォルトの名無しさん (ササクッテロロ Sp85-KyXl)
垢版 |
2017/10/24(火) 12:26:01.19ID:SXPDSp16p
>>754
データを格納するファイルと
そのデータを管理するファイルに分ける

データを管理するファイルでVBAを動かし
データを更新するときは更新中か否か判別する値を持つ

DBとDBMSのような関係
759デフォルトの名無しさん (ササクッテロロ Sp85-KyXl)
垢版 |
2017/10/24(火) 12:29:03.80ID:SXPDSp16p
>>756
マクロの記録でオートフィルタの記録をとって見比べる
2017/10/24(火) 12:44:07.31ID:4VNEc1KXM
>>752
>>718
VBA でやるにはハードル高いかも
2017/10/24(火) 13:12:35.37ID:mH/THH+ia
>>760
C♯とかだとイベント検知できたような気がするけど
2017/10/24(火) 14:18:38.15ID:wq0WCN150
c#とか使わなくてもvbsでフォルダ監視するファイル作って実行させとけばいけるんじゃない?
c#かvb.net使っていいならFileSystemWatcher使えば希望通りのことが出来ると思います。
2017/10/24(火) 15:13:31.99ID:+GLe08ON0
>>762
できるかできないか、じゃなくて、
やり方を具体的に頼む
2017/10/24(火) 15:15:31.49ID:RrgGTSJsa
>>741
いや、だから既にVBAでも出来てるし。
ハードル高いかどうかは組む人のスキル次第でしょ。
2017/10/24(火) 15:50:11.86ID:mH/THH+ia
>>763
今までのやり取りである程度推測できないならスキルが足りてないだけでしょ
2017/10/24(火) 16:08:30.01ID:cjHIRFnx0
フォルダをウォッチする機能を
Excelに持たせようとすること自体がセンス悪い
2017/10/24(火) 16:13:02.09ID:dMhREPrI0
Book1 Sheetあ Sheetい Sheetう Sheetえ
Book1 の Sheetう の中にボタンを作って、そのボタンを押すとエクセルの任意のブックを参照して
参照したブックのSheet1の内容をすべてコピーして、Book1の Sheetあ のA1を起点に張り付けたいです。
ご教授お願いします
2017/10/24(火) 16:15:19.30ID:IEYUp2Hxp
永久ループに適当にスリープ咬ませて、シートに列挙したファイル名と付き合わせるくらいかな?
高速かどうかはわからないけど
2017/10/24(火) 16:22:17.63ID:B2D33UKaa
>>767
任意のブックとは常に決まったブックなのか、
それともその都度変わるのか?
変わる場合は、どうやって指定するのか。
770デフォルトの名無しさん (ワッチョイ f9cc-AYzn)
垢版 |
2017/10/24(火) 16:28:26.33ID:dMhREPrI0
>>769
その都度変わります。
ですのでファイルを参照するウィンドウを開いて指定する方法ができると嬉しいです
2017/10/24(火) 17:46:03.13ID:B2D33UKaa
それ自体は難しくないと思います。
あとは、コピー元のブックがあるフォルダが決まってるかとかで多少変わってくるかと。
例えば常にカレントフォルダにあるとか、コピー先のブックと同じとか。
2017/10/24(火) 20:30:24.34ID:4VNEc1KXM
>>761
そりゃC#使えるならSystem.IO.FileSystemWatcherクラスを使えばいい
でもここはVBAスレだし
https://msdn.microsoft.com/ja-jp/library/system.io.filesystemwatcher(v=vs.110).aspx
2017/10/24(火) 21:16:13.10ID:wq0WCN150
>>763
vbs

myFLD1 = "C:\監視フォルダ"
myFLD2 = "C:\コピー先"
myLimit = 3 '3分間監視する

Msgbox "監視スタート"
myTime = DateAdd("n", myLimit, Now)
myMEM = ""
With CreateObject("Scripting.FileSystemObject")
For Each myF In .GetFolder(myFLD1).Files
If InStr(1, myMEM, myF.Name & vbTab) = 0 Then
myMEM = myMEM & myF.Name & vbTab
End If
Next
Do
For Each myF In .GetFolder(myFLD1).Files
If InStr(1, myMEM, myF.Name & vbTab) = 0 Then
myMEM = myMEM & myF.Name & vbTab
.CopyFile myF.Path, myFLD2 & "\"
End If
Next
WScript.Sleep 500
If myTime < Now Then Exit Do
Loop
End With
Msgbox "END"
2017/10/24(火) 21:20:32.78ID:wq0WCN150
>>763
vbsのサンプルなんでコピー処理を自分のやりたい処理に変えてみて下さい。
c#かvbなら上の人がリンク貼ってある先みるといいですよ
2017/10/24(火) 23:00:43.39ID:DfsEXCLh0
タスクランナーのGulp, Grunt, Jenkins とかを使えば?

毎秒フォルダ・ファイルを、watch して、タスクを実行する。
タスクでエラーが起きると、watchを解除する

タスクランナー → アプリ

自分でプログラミングすると、逆になる。
アプリ → タスク

エラー処理も、難しい
776デフォルトの名無しさん (ワッチョイ 7aeb-KyXl)
垢版 |
2017/10/24(火) 23:04:46.31ID:PJuVne9A0
タスクスケジューラでいいように思うけど
2017/10/25(水) 02:23:47.05ID:Pns1W9gd0
さっさと諦めればいいのに
2017/10/25(水) 02:31:56.07ID:wjy6ng+H0
盛り上がってるんだから、話題に入れないお前が諦めりゃいいんだよ
2017/10/25(水) 08:15:57.43ID:K0iADaTOa
>>772
VBAじゃ実用的なものは無理でしょって言う遠回しなお断りなんだが
まだvbsの方が現実的
780デフォルトの名無しさん (ワッチョイ d681-0MKJ)
垢版 |
2017/10/25(水) 16:02:07.00ID:4LLWyKan0
VBAのステータスバーの表示方法について
課題でステータスバーを表示しなさいとなっているのですが割り算の問題?
なのかうまくひょうじできません。
基本は
Application.StatusBar = String(i, "■") & String(10- i, "□")
上記のコードでいいと思うのですが、
ステータスバーに進捗を表す"■"を表示する。表示する"■"の数は変数iの値を100で割った値とする
この、"■"の数は変数iの値を100で割った値とするの部分がうまくいきません。
やってみたのは下記のコードです
Application.StatusBar = String(Int(i / 100), "■") & String(Int(i / 100), "□")
ちなみに、Forの繰り返しは1から500です。
781デフォルトの名無しさん (ワッチョイ 3a0e-HarP)
垢版 |
2017/10/25(水) 16:21:09.87ID:Qf3oRisb0
ちょっとお知恵を拝借したいと

Excel 2010で作業をしているのですが、
大量にあるシートにある非表示セルをとある事情で全て削除したいのです。

ただし、
・どの行・列が非表示になっているかはシート毎に異なる(むしろ、消したい行・列を非表示にして、マクロで消すことが考えられる)
・場合によってはSpecialcells(xlCellTypeLastCell)で拾えるセルより下/右の行/列が非表示になっている可能性がある
 (使用されているセルはAD250までだが、非表示セルがAF列や300行に設定されていると上手くいかない。
  または、AA:ADが非表示だとZ列が拾われてしまう。)
・どれくらい下/右まで使用されているかは必ずしも分からない(さすがに、1000行は使わないと思うが、断言できない)
という問題があります。

数十から百程度のシートがあるので、10000行500列のような数を処理するのは時間がかかるため、
できる限りチェックは最小圏で済ませたいのですが、いい方法はありませんでしょうか。
2017/10/25(水) 16:54:42.17ID:FTD//1X/0
>>781
ブックをzipとして解凍して出てきたxml
(\Book\xl\worksheets\sheet1.xml とか)
の中身みると
<col min="16374" max="16374" width="0" hidden="1" customWidth="1"/>
みたいな感じでどの行、列が非表示なのか書いてあるからそれを拾うとかどうよ
2017/10/25(水) 16:59:56.89ID:0GYD+24d0
>>780
>Int(i / 100)

をDebug.Printしてみる
2017/10/25(水) 17:08:25.65ID:0GYD+24d0
>>781
ドキュメント検査の中に非表示の行・列を削除する機能がある

VBAなら
If Columns(ColumnNumber).Hidden = True Then Columns(ColumnNumber).EntireColumn.Delete
If Rows(RowNumber).Hidden = True Then Rows(RowNumber).EntireRow.Delete
をそれぞれ列数・行数分
785デフォルトの名無しさん (ワッチョイ 3a0e-HarP)
垢版 |
2017/10/25(水) 17:24:35.66ID:Qf3oRisb0
>>782
xmlにそんな記載があるんですか。
確かにそれなら出来そうですが、それを解釈させるマクロを書くのは面倒くさそうな感じですね
それに、拡張子をzipに変えるとxmlが取り出せるというのを知らない人は多そう
(自分が使うために作るんですが、欲しいと言ってる人にあげる予定なので、難しいことは抜きにしたいかな…)

>>784
実務的にはそれを For … To … Step -1 で回すか>>782で調べたものを使うんでしょうが、
そこが問題なんですよね…

ところで、Columns(ColumnNumber)ってRangeオブジェクトを返すと思うのですが、
EntireColumnが必要なんですか?
いえ、Rows、Columnsあたりはよく分かってない部分があるので、自分の認識不足かも知れませんが。
786デフォルトの名無しさん (ワッチョイ 3a0e-HarP)
垢版 |
2017/10/25(水) 17:27:57.53ID:Qf3oRisb0
>>784
(VBAに目が囚われて、非表示検査のことをすっかり忘れてた)
こちらは、あとでいじってみます。
そんな便利機能があったのか…
2017/10/25(水) 17:37:26.49ID:FNFMgMk+a
>>780
良く分からんが■と□の数が同じで良いのか?
どっちもInt(i/100)個表示するようになってるが。
最初の例では□は10から■の個数を引いてたよね。
2017/10/25(水) 17:44:03.77ID:0GYD+24d0
ブックが大量にあるならドキュメント検査の機能をVBAから起動することもできるみたいよ

Set di = book.DocumentInspectors(3)
di.Fix Status, Result

DocumentInspectorsコレクションの3がHidden Rows and Columnsだってさ
2017/10/25(水) 17:57:35.27ID:FNFMgMk+a
xlCellTypeVisibleで表示されてる領域が取れるね。
で、それ以外が非表示ということで、指定領域以外の領域を返す関数作ればいけると思うのだけど。
2017/10/25(水) 19:49:21.08ID:mmbso5lGM
>>779
>>773程度ならVBAでも同じようなもんだし、今時vbsでやるくらいならPowerShellなりC#の方がマシ
791デフォルトの名無しさん (アウアウカー Sadd-2iY5)
垢版 |
2017/10/25(水) 19:52:49.91ID:vc+eFbWaa
そりゃライブラリ揃ってるC#でやりゃ簡単なのはわかってる。
VBAでなんとか出来ないか?ってのが醍醐味でしょ
792デフォルトの名無しさん (ワッチョイ 5103-PvcH)
垢版 |
2017/10/25(水) 20:04:16.54ID:1SuU76Ul0
このキモさ只者じゃない
793デフォルトの名無しさん (ワッチョイ baa4-V3Kl)
垢版 |
2017/10/25(水) 20:28:12.47ID:uuTKo/W80
>>790
PowerShellには違和感ありまくり。なんか「覚えよう」と言う気になれない。どうせならC#を統合して欲しかった。
2017/10/25(水) 21:18:11.90ID:/5iNSkw80
>>791
VBAで苦労したいなら>>718のリンク先をVBAで実装するだけでしょ
いまさら醍醐味とか言われてもね
2017/10/25(水) 21:57:34.79ID:0GYD+24d0
Excel起動中だけフォルダ監視したい状況ってどういうケース?
それなりの信頼性が必要なら稼働監視も必要になってくる

VBAでやるならわざわざwin32使うより
新旧状態比較のほうがまだいい気がするけどね
2017/10/25(水) 21:59:06.19ID:0GYD+24d0
>>789

>>713のRangeからRangeを引くメソッドが役立つね
2017/10/25(水) 23:07:42.90ID:ajJCRl8ia
>>790
いちいちエクセル立ち上げなきゃできないvbaなら見た目には見えないvbsの方がマシじゃね
クソかミソかみたいな話だが
まあそもそも俺はC♯等々でやるべきと言う派閥
2017/10/26(木) 02:53:53.87ID:GiV8M1tl0
Excelしかできない人ってかわいそう
2017/10/26(木) 07:01:20.13ID:vRQ6cy4b0
バッチ処理ならvbsがいいけど、エラーログやらなんやらって思うと結局エクセルvbaの方が便利すぎて
2017/10/26(木) 07:06:29.21ID:oyaJ8gC3M
>>795
> Excel起動中だけフォルダ監視したい状況ってどういうケース?
> それなりの信頼性が必要なら稼働監視も必要になってくる
醍醐味とか言ってる奴に実用性求めてどうするよ w

> VBAでやるならわざわざwin32使うより
> 新旧状態比較のほうがまだいい気がするけどね
理由は?
自分がそれしか理解できないからってこと?
801デフォルトの名無しさん (ワッチョイ 930e-lHwk)
垢版 |
2017/10/26(木) 07:48:52.20ID:xxnSYJ9G0
>>788
そんなこと出来るんだ…
検査中はマクロは止まるんですかね…?


>>789
その考え方はなかったですね
これはこれで、やり方を考えてみます
2017/10/26(木) 11:25:46.03ID:HWdjovEla
ようはExcelの処理の中で高度なことが必要になったわけで、単独なら他の言語でも良いわけだ。
じゃあ高度だからといって他言語と連携させるのが良いと考えるのか、それともそれはカッコ悪いと考えるのかという話だと思う。
それと、その人にとってどれくらい高度なのかによって変わる。

俺はカッコ悪いと考える派なんでWin32APIを使うね。
別に苦でもない。

ただ、そもそもフォルダ監視が本当に必要なのかは疑問。
初心者の質問は結構、無理を通そうというものが多く、仕様を見直すとそんな機能は必要無かったとなることも多い。
2017/10/26(木) 11:49:24.76ID:7XpeFsmi0
適切な要求仕様を考えるのも、また一つの技術だからね。
804デフォルトの名無しさん (ワッチョイ eb81-YYNr)
垢版 |
2017/10/26(木) 13:02:27.20ID:PA9kc1XX0
初歩的な質問ですが、コードを記入して間違ったときに記入するときに削除をすると
通常の削除ではなく、そのスペースがなくなり上書きのようなものになり
直そうとするとそこから全ての文を打ち込みし直さないといけない状態ですが
通常の文のように削除、追加するようにはどうしたらいいでしょうか?
2017/10/26(木) 13:06:20.32ID:uULs3yACd
>>804
プログラミングというのはコンピューターに対する処理手順の説明
お前みたいな説明の下手な奴はセンスないからプログラミングやめろ
806デフォルトの名無しさん (ワッチョイ eb81-YYNr)
垢版 |
2017/10/26(木) 13:13:32.91ID:PA9kc1XX0
>>805
雑談スレでもなく、質問スレでそんなにキャンキャン切れるのはプログラミング
向いてないからやめたら?
2017/10/26(木) 13:17:43.11ID:GZLf9rraa
>>806
どちらにしてもなにいってるかわからないからやり直し
2017/10/26(木) 13:25:12.24ID:7XpeFsmi0
どっかでInsキー押し間違えて入力モードが切り替わってるんじゃないの。
2017/10/26(木) 14:17:19.57ID:rDx4+zqZa
>>804
>>805の言ってることは厳しいし、説明の上手い下手がセンスに直結してるとは思わないけど、初心者の人は説明が下手で回答を遠ざける人が非常に多い。
少しは文章を推敲すべきじゃないかな。
相手のエスパーを期待するってのは結局人にやらせたいってだけと受け取る人もいるだろう。

テキト−に考えてるのか分からないけど、自分の問題となってるコードをそのまま質問者に丸投げしたり、やる気が感じられないんだよね。
2017/10/26(木) 14:17:36.25ID:94hkv9myM
質問する側がこんなキチガイみたいな煽りする時点で答える必要はない
811デフォルトの名無しさん (スプッッ Sd73-Gmo/)
垢版 |
2017/10/26(木) 14:36:54.90ID:3HeaIUwTd
こういうおかしな日本語を見ると漠然とした不安を感じる
現象としては>>808だと思うけど
2017/10/26(木) 14:49:54.73ID:GZLf9rraa
なんつーか改行もおかしい
糖質っぽい
2017/10/26(木) 16:04:18.61ID:EuBqxPU00
お前らスルー耐性無さすぎw
814デフォルトの名無しさん (ワッチョイ 8903-/3V2)
垢版 |
2017/10/26(木) 16:54:30.02ID:FgkSJLUp0
このスレは自分が答えられない質問をする奴は基本貶す方針で運営されてるからな
815デフォルトの名無しさん (ワッチョイ 13eb-Rdnx)
垢版 |
2017/10/26(木) 17:12:20.63ID:Jtc4NubG0
>>814
その方針とやらに従うかどうか
決めているのは自分だろ

勝手に答えてやればいい
2017/10/26(木) 18:40:53.23ID:n0QyVGSVx
powershellはおっそいのがね...
2017/10/26(木) 19:44:24.92ID:LTZyjypE0
>自分の問題となってるコードをそのまま質問者に丸投げしたり、やる気が感じられないんだよね。

まだ良いほうだよ、それ。w
とにかくコードも示さずエラーがエラーがってどんなエラーが出てるのかも示さずな奴も居たからな
2017/10/26(木) 20:47:10.77ID:wB508HAVa
>>814
そら答えられんわ
日本語としておかしいんだから
2017/10/26(木) 21:47:23.55ID:spYnWPpM0
初心者です。
同じフォルダ内の複数のExcelファイルをひとつにまとめたいのですが、方法を教えていただければうれしいです。
2017/10/26(木) 21:53:25.01ID:Mz98JUDex
>>819
シートに全部まとめて保存します
その後余分なファイルを削除します
2017/10/26(木) 22:11:22.87ID:oyaJ8gC3M
>>816
なにやってるのか知らんけどスクリプト言語としては十分な性能だと思うが
2017/10/26(木) 22:14:00.17ID:oyaJ8gC3M
>>819
zipフォルダにぶちこめばいいんじゃね?

って言われたくなきゃもっとやりたいことをきちんと書かなきゃダメだわな
2017/10/26(木) 22:23:16.30ID:zf5GxGXS0
>>822
いい返しだな
2017/10/26(木) 23:05:18.78ID:n0QyVGSVx
>>819
エクセルブックをまとめると一口で言っても、シートを一つのブックにまとめたり、データを一つのテーブルにまとめたり、いろんな解釈が成り立ちうる
というか、エクセルブックをまとめるというのは、何らかの作業目的を達成するための手段だろう?
初心者は自分でイメージしている手段の実装方法を質問するんじゃなくて、目的から説明して最適な方法を質問した方が良いぞ
2017/10/26(木) 23:08:11.48ID:n0QyVGSVx
>>821
CUIで動くコマンドとして捉えるとやっぱり遅いし、ワンライナー書くには便利だけどそれ以外のメリットがあまり実感できないんだよな
2017/10/26(木) 23:23:07.52ID:G+Co1V6V0
PSはともかくとして.NETにメリットを感じないなら
そりゃ使う理由ないよね
827デフォルトの名無しさん (ワッチョイ 8903-xLv1)
垢版 |
2017/10/27(金) 00:53:12.33ID:7fFHnBnT0
あのクソめんどくせえバワーシェルでワンライナーとか正気の沙汰とは思えんな
2017/10/27(金) 05:05:02.11ID:jmKj26SQ0
PowerShellの話題はPowerShellスレでやるんだ
2017/10/27(金) 08:53:24.35ID:rmB0za9r0
ワークシート関数とプログラムの組み合わせで複雑な計算も簡単に書けるというexcelvbaの長所を活用しようよ
2017/10/27(金) 16:38:23.21ID:RqN3wtztM
( ・ω・)∩シツモーンです


最近ティンコが痒いんですが
どうすれば良いでしょうか
教えてくさい
2017/10/27(金) 16:54:33.12ID:mlXsQQEK0
>>830
風通しをよくするのが重要です
陰毛を剃ってノーパンで過ごして下さい
2017/10/27(金) 18:35:12.89ID:GaUS+r+3M
>>830
無水エタノールでもかけときゃ治るやろ
どうなっても知らんがな
2017/10/27(金) 19:48:16.15ID:z4zr2FxK0
>>830

Do Until ティンコ = 痒くない
Call ティンコ掻く
Loop
834デフォルトの名無しさん (ワッチョイ 8903-/3V2)
垢版 |
2017/10/27(金) 19:50:55.26ID:7fFHnBnT0
男のくせにティンコとかぼかして言うやつw
2017/10/27(金) 20:19:11.74ID:r31OO9Bna
>>833
途中でオーバーフローして出血しそうなコード
2017/10/27(金) 21:33:06.91ID:cIkV9qHA0
まずは医師の診断を受けろ
最近東南アジア行ったんだろ?
2017/10/27(金) 21:52:19.37ID:9goOwbvB0
VBAでサジェスト機能?をやりたいのですが、フォームにコンボボックス1を配置してシート1のA列にあるリストを一文字入力したらコンボボックスに候補が出るようにするコードが知りたいです。

欲を言えば、『田』と入力したら『田中』、『田口』とか『田』の候補が出てきて田中を選択して、スペースを入力してまた『鈴』と入力したら『鈴木』や、『鈴鹿』とまた候補出てきて入力出来るように出来ますか?
2017/10/27(金) 22:27:17.28ID:1gHUTTMhd
>>834 黒如意とでも書けばいいのかな
2017/10/27(金) 22:30:52.04ID:+kIdBPsu0
>>837
若干挙動は違うけど
自分がよくやる手法が>>284
Splitあたりで工夫すればスペースで区切ってできるかもね
840デフォルトの名無しさん (ワッチョイ 8903-xjBH)
垢版 |
2017/10/28(土) 00:40:19.22ID:W70mY4tC0
>>838
大久保さんかよwお前BBAだろw
2017/10/28(土) 09:13:49.16ID:VLfN62TLH
肉男爵
842デフォルトの名無しさん (ワッチョイ 1b2d-xXVv)
垢版 |
2017/10/28(土) 09:33:46.66ID:lFHzdqsq0
リモートデスクトップを使用してADサーバへアクセスし
変更するマクロを作成しています。

shellを使用して目的のサーバを起動させることは出来たのですが
そこから開いたサーバを操作するにはどうしたらよいのでしょうか?
何かやろうとしてもローカルPCの方を操作しようとしてしまいサーバの方を操作できません。

曖昧な質問で申し訳ないのですがよろしくお願いします。
843デフォルトの名無しさん (ワッチョイ 13eb-Rdnx)
垢版 |
2017/10/28(土) 10:03:13.85ID:nxEBBv600
>>842
VBAでやる必要がわからない
それこそpowershellとかの方が良いような

それかマウスやキーボードを操作するとか
844デフォルトの名無しさん (ワッチョイ 1b2d-xXVv)
垢版 |
2017/10/28(土) 10:43:35.88ID:lFHzdqsq0
>>843
ご返答ありがとうございます。
powershellについて調べてみました。
これをサーバに作成しておき、
ローカルPCの方のマクロボタンを押して起動させ、
ADの設定変更をするようなマクロを作りたいと考えています。

起動させたサーバ側を操作する方法があればご教授いただけないでしょうか?

よろしくお願いします。
845デフォルトの名無しさん (ワッチョイ 13eb-Rdnx)
垢版 |
2017/10/28(土) 10:55:53.23ID:nxEBBv600
>>844
ADって何?
2017/10/28(土) 10:56:14.17ID:aSsplcDm0
>>837
これまた日本語がわかりにくなあ

とりあえず文字検索するだけなら

dim inpted
dim i as long,maxRow as long,list as new collection
'maxRowは最大行自分で求めて
for i = 1 to maxRow
 if .cells(i,1).value like inputed & "*" then
  list.add .cells(i,j).value
 end if
next i

dim l as varianrt
for each l in list
 combobox.additem l
next l

とかこんな感じでいいんじゃねえの
コンボボックスに入力した値って要素0に入ってるんだっけか?
2017/10/28(土) 10:57:11.27ID:aSsplcDm0
あ、コレクションに代入してるときのcolumnのjは間違い
1ね
わかると思うけど
2017/10/28(土) 11:00:53.80ID:aSsplcDm0
あ、あとinptedが入力済の文字列ね
どっから代入してくりゃいいか質問文からは読み取れないので
849デフォルトの名無しさん (ワッチョイ eb81-YYNr)
垢版 |
2017/10/28(土) 11:43:02.13ID:av9I5Dpn0
コピーのコードどが間違っているんでしょうか?
シート1とシート2にA3がオートフィルの題名でA4からA9にデータがあり
シート1のデータをシート2の最終行に張り付けたいのですがうまくいきません。
下記がコードです。
Sub Q_2_4()
Dim DataLastCell As Range

With Worksheets("Sheet2")
'「Sheet2」ワークシートの表で、A列のデータ入力行のセルを取得し、変数DataLastCellに代入する
Set DataLastCell = .Cells(.Rows.Count, "A").End(xlUp).Offset(1)
End With

'「Sheet1」ワークシートのA4からD9をコピーして「Sheet2」ワークシートに貼り付ける
' Worksheets("Sheet1").Range("A4:D9").Copy(コピーするセルの選択)
'コピーするセルたりないのは貼り付けをするを指定するセル
'
Worksheets("Sheet1").Range("A4:D9").Copy Destination:=DataLastCell
End Sub

下記の部分で止まってしまうのですがどこが間違っているかわかりません。
Worksheets("Sheet1").Range("A4:D9").Copy Destination:=DataLastCell
2017/10/28(土) 12:27:45.96ID:jW60ksrY0
>>844
サーバー側にAPIをつくっておいて
HTTP-POSTでPowerShellを走らせるコマンドを送りつけるとか

そこまでやるなら、もはやVBAにこだわる必要ないし
セキュリティも知らないけど
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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