12/07/12 19:03:00.57
VBAを使った質問ならなんでもござれ
本来の対象であるオフィスアプリを操作する以外の話もOK
ゲーム作り、Webアクセス、外部アプリの操作
COM(ActiveX)、Win32API、.NET Framework、DirectXなどなど
VBAで実行するものであればなんでも質問してください
VBAを開発環境としていろいろ作っちゃいましょう
関連スレ
Excel VBA 質問スレ Part25
スレリンク(tech板)
Access VBA 質問スレ Part1
スレリンク(tech板)
VBプログラマ質問スレ(Ver.6.0 まで) part58
スレリンク(tech板)
2:デフォルトの名無しさん
12/07/12 19:22:31.85
乙
3:デフォルトの名無しさん
12/07/12 19:23:33.44
VBAでQRコードを表示したいです。
入力されたテキストからQRコードを作って、
正方形に配置したセルを白黒に塗り分ければ良いと思うのですが、
具体的にどこから手をつければ良いのかわかりません。
4:デフォルトの名無しさん
12/07/12 19:24:18.17
ieの画面操作で困っています。
操作したいie画面は左右にフレームが分割されているもので、左側に
メニューが並んでおり、そのメニューをクリックすると、右フレームに
そのメニューに応じた画面が表示されるというものです。
ie画面操作を自動化したいのですが、このメニュー選択の部分が突破
できずにいます。左フレームのソースのリンク先を使って、以下の
マクロを書いたのですが
Dim objShell As Object
Dim IEurl As String
Set objShell = CreateObject("WScript.Shell")
IEurl = "URLリンク(********************)"
objShell.Run IEurl
このマクロでは、右フレーム上に画面を開くことができずに
「不正な画面遷移が検出されました」と分割フレームが消えて
全面に表示されてしまいます。
尚、クッキーを引継ぐ必要があるので、WScript.Shellを使っています。
objShell.Run IEurl の部分でカレントフレームを指定するなどが
できないでしょうか?Runの前(又は後)に「.~」と何か挿入するとか・・。
frame(0)などを入れてもうまく行きません。
どなたかie画面操作に詳しい方、レスお願い致します。
5:デフォルトの名無しさん
12/07/12 19:25:59.48
|....,,__
|_::;; ~"'ヽ
| //^''ヽ,,)
| i⌒"
| ∀`) < 誰もいない きのこるならいまのうち
|⊂
| ノ
_,,,......,,__
/_~ ,,...:::_::;; ~"'ヽ
(,, '"ヾヽ i|i //^''ヽ,,)
^ :'⌒i i⌒"
|( ´∀`) < きのこ のこーのこ げんきのこ ♪
|(ノ |つ
| |
⊂ _ ノ
""U
_,,,......,,__
/_~ ,,...:::_::;; ~"'ヽ
(,, '"ヾヽ i|i //^''ヽ,,)
^ :'⌒i i⌒"
(´∀` )| < エリンギ まいたけ ブナシメジ ♪
⊂| (ノ |
| |
ヽ _ ⊃
.U""
|
| ミ
| ミ サッ!
| ミ
|
6:デフォルトの名無しさん
12/07/12 19:27:00.23
このスレッドは天才チンパンジー「アイちゃん」が
言語訓練のために立てたものです。
アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。
京都大学霊長類研究所
7:デフォルトの名無しさん
12/07/12 23:29:29.48
midi再生をしたいのですがどうしたらいいのかわかりません。
.midファイルを再生するのではなく、シート上に
ド|■■■
レ| ■■
ミ.| ■■■■
のように表記したものを演奏したいのです。
Beepで音階を表現する方法くらいはわかるのですが
実際は和音もあるのでBeepではできません。
あと、ピアノとかフルートなどの音色も変更できるようにしたいです。
宜しくお願いします。
8:デフォルトの名無しさん
12/07/13 00:01:34.63
>>7
シートってことはExcelか?
9:7
12/07/13 00:31:13.62
>>8
使ってるのはExcel2002です。
ただ実質的には二次元配列データからmidi再生ってことなので
Excelはあまり関係ないかも知れませんが。
10:デフォルトの名無しさん
12/07/13 00:35:24.18
>>7
Excel VBA 質問スレ Part25
スレリンク(tech板)
こっちに来いってさ
こっちの>>1には何がスレ違いだのなんだの書かれてるけど
その質問もスレ違いじゃなくてちゃんと答えてくれるっていう人がいるから
行ってみたら?
11:デフォルトの名無しさん
12/07/13 00:44:19.74
>>7
「vba 音を鳴らす 音階 音色 -beep」でググれ
12:7
12/07/13 00:44:38.86
質問取り下げます
13:デフォルトの名無しさん
12/07/14 12:42:44.16
本スレ用NGEx
URI/タイトル:含む:VBA
Word:正規(含む):(正義|謝罪|謝れ|オナニー|早漏)
14:デフォルトの名無しさん
12/07/22 03:34:14.70
CorelDRAWのVBAの質問ってどこですればいい?
って
「スレ立てるまでもない質問はここで 120匹目」
に投稿したらここを紹介された。
ここでおk?
15:デフォルトの名無しさん
12/07/22 09:11:12.16
スレ違いではないので質問するのはお好きなように
答えてくれる奴、答えられる奴が居るかまでは保証しないが
16:デフォルトの名無しさん
12/07/22 11:46:13.23
>>14
このスレが立った経緯を考えると
誰も答えてくれないと思うよ^^
17:デフォルトの名無しさん
12/07/23 00:03:19.90
そもそもCorelDRAWのVBAってなんだよ
VBAと言えばMS Officeだし、お絵かきソフトならアドビ一択だろ
18:デフォルトの名無しさん
12/07/23 08:42:31.17
参照設定に追加される奴なんじゃ?まぁ
14が書いてみないことには何ともだけど
19:デフォルトの名無しさん
12/07/23 13:57:09.79
いや、CorelDRAWはVBA装備だったと思う
つかさっさと質問書けばいいのに
20:死ね
12/07/24 07:52:56.79
>>19
あ?なにお前、質問書いてほしいのなら書いてくださいとお願いしろや
21:デフォルトの名無しさん
12/07/24 13:05:51.79
また騙されてダム板に飛ばされた訳だが
22:14
12/07/26 00:27:11.99
申し訳ありません。
読めもしない英語のチュートリアルを辞書片手に読んでいました。
200近いオブジェクトのうちの、いくつかのオブジェクトの内側の色を、
CMYKで指定する値に変えるというマクロを組みたいのです。
が、それ以前に指定するオブジェクトを選択できないので困っています。
それで今のところ、単純に任意のオブジェクトを選択するだけのマクロを組みたいのですが
以下のコードから If文のところをどういう風に組めばいいのかが分かりません。
ご教授願えませんでしょうか?
Sub オブジェクトを選択する()
dim sh1 as shape
'選択している全てのオブジェクトを検索
For Each sh1 In ActiveSelection.Shapes
'下の*に適合したら選択する
if ************* Then
sh1.CreateSelection
msgbox "指定されるオブジェクトを選択できました。"
Exit For
End If
Next sh1
End Sub
23:デフォルトの名無しさん
12/07/26 10:29:19.71
>>22
エスパーさ~~ん、ご指名ですよ~~~~~
24:デフォルトの名無しさん
12/07/26 10:38:28.39
普通にバックカラーがなんとかだったらってことなんじゃねーの?
25:デフォルトの名無しさん
12/07/26 10:44:55.05
普通に一昨日の天気が雨だったらってことなんじゃねーの?
26:デフォルトの名無しさん
12/07/26 10:50:33.68
CorelDRAWは解らないが、
> いくつかのオブジェクト
> 指定するオブジェクト
> 任意のオブジェクト
が何を指しているのか書かないと始まらないのでは?
丸いものだけとか、何色のものだけとかさ。
というか、人間相手に自然言語でそういうことを理路整然と語れない奴には
プログラムやマクロは無理じゃないか?
英語とかVBA語とか、言語の種類を増やす前に、まず小学校で
生活言語(母語)での基礎的な表現や会話能力を身につけた方がいいかもしれない。
27:デフォルトの名無しさん
12/07/26 12:58:03.36
おっ
住み分けが機能してるようだ
後は分断工作員さんが回答できるだけの知識をつけるだけだな
28:デフォルトの名無しさん
12/07/26 14:03:28.28
向こうは問題ないし(当然、不可能なこととかもあるから100%回答されるわけじゃないが)、
こっちは元々回答者居ないでしょ
住み分け派:ExcelVBAスレで順調に回答、向こうでスレ違いになるこっちの質問には興味なし
なんでも来い派:こっちは勝手に立てられたスレだから興味なし
29:デフォルトの名無しさん
12/07/26 15:29:48.33
また騙されてダム板に飛ばされた訳だが
30:デフォルトの名無しさん
12/07/26 22:40:19.68
大学の課題で詰まってしまったんですが、ここで質問しても大丈夫ですかね
31:デフォルトの名無しさん
12/07/26 22:45:03.86
>>30
君の行っている大学には質問できる教員はいないの?
それとも君が教員で課題を考える側?
32:デフォルトの名無しさん
12/07/26 22:49:22.77
>>31 質問しても、自分で考えての一点張りで…。
課題だから自分で調べてやりなさいとのことなんですが、そもそも文章の意味すら理解できなくて…
33:デフォルトの名無しさん
12/07/26 23:18:08.48
出来なければ出来ないでいいんだよ、まだ社会人ではなく子供なんだからさ
単位が取れないとか言うかも知れないが、単位を取ることは仕事と違って義務じゃないんだし
他人の力で単位取る事の方がよほど恥ずべき行為
子供のうちから、中身もないのに表面だけ取り繕うこと考えてるとロクな大人にならないぞ
そもそも全員が難なくこなせる内容だったら、課題の意味が無い
出来ない人、間違う人を見極めながら講義を進めていくわけだから、出来ない人が居ても何も問題わけで
その上で「出来ない人」に分類されるのが嫌ならば、他人を当てにするのではなく自分を磨け
34:デフォルトの名無しさん
12/07/26 23:24:08.96
単位はどうでもいいんですけど、できなくてモヤモヤ
35:デフォルトの名無しさん
12/07/26 23:34:16.72
なんでもいいから早く質問書けや
36:デフォルトの名無しさん
12/07/26 23:39:52.65
こういうところで回答するくらいしか優越感に浸れる瞬間が無くて
簡単な質問なら答えるべきではないものでも嬉々として答える人が居るから
試しに質問書いてみたら?
37:デフォルトの名無しさん
12/07/26 23:53:28.09
シート1の2000年のデータを初期値として、2050年までの推移を計算し、10年おきに出力して、グラフに表せ
という課題なのですが、この初期値として推移を計算するっていうところがわかんなくて困ってます
38:デフォルトの名無しさん
12/07/27 03:09:58.57
midiデバイスは扱いづらいためdx8のダイレクトサウンドを使おうと思うのですが
ブックの参照設定を開いた時に自動で変えることは可能でしょうか?
39:デフォルトの名無しさん
12/07/27 05:26:07.28
>>37
Excelの問題というよりも統計の問題ですよ、それ w
forecastとか回帰直線とか、そういったのを調べてみたら?
40:デフォルトの名無しさん
12/07/28 10:38:07.28
質問 最近 Windows 7/Outlook2010 に移って、今までXP/Outlook 2007のでVP
スクリプトから実行してたエラーが出てスクリプトが動きません。テストコー
ドを書いても同じ結果です。
エラー
Object doesn't support this property or method
VBA コード
Public Sub test_msgbox(str As String)
MsgBox str
End Sub
VBS コード
Set myOlApp = CreateObject("Outlook.Application")
myOlApp.test_msgbox("test")
何がおかしいのでしょうか?
41:デフォルトの名無しさん
12/07/28 10:41:33.24
そういう時はさ、最低限何というエラーが出て、それはどこなのかぐらい書けよ
42:デフォルトの名無しさん
12/07/28 12:03:16.34
エラーメッセージ書いてある
コードは1行だけ
43:デフォルトの名無しさん
12/07/28 12:42:33.54
エラー出て当たり前だと思うのは俺だけか?
というか、こりゃスクリプトの質問だからさすがにスレ違いだな
"VP"スクリプトではなくVBスクリプトだとしてもねw
44:デフォルトの名無しさん
12/07/28 22:35:18.85
Byval省略すんなや
書く癖を付けろ
45:40
12/07/29 03:36:04.31
>>42
サンクス
>>43
どうしてエラーがでるか教えてください。ちなみに前の環境ではこのエラーは
でません。
追加情報ですが、VBA 側のコードは、"ThisOutlookSession" に書いてありま
す。ウェブでこのエラーで検索すると"Digital Signatureがないとだめ"的な
ことが書いてあったのでSignatureを登録しましたが結果は変りませんでした。
VBスクリプト側にも署名が必要なのかとなと考えてますがその方法が別りませ
ん。
46:デフォルトの名無しさん
12/07/29 14:44:54.50
>>7>>38
俺が以前作ったエクセルから音を出す装置だぜ~
apiのPlaySoundを使った場合
URLリンク(xlsg.net)
dx8の場合
URLリンク(xlsg.net)
これはmidiデパイスから音を出してるピンボールだぜ(諸事情でコードは見れないぜ)
URLリンク(xlsg.net)
47:デフォルトの名無しさん
12/07/29 15:28:15.90
Excelで作ってる以上、見ようとすればコードは丸見えだけどな
VBAプロジェクトの保護ってのは、誤改変防止であってソース漏洩防止じゃないから
48:デフォルトの名無しさん
12/08/17 15:40:09.16
excelで惑星の位置を計算したいと思っています。
地心黄経で出したいのですが、参考になるHPがあれば教えてください。
49:デフォルトの名無しさん
12/08/17 19:03:31.48
>>48
URLリンク(msdn.microsoft.com)
50:デフォルトの名無しさん
12/08/29 05:52:09.70
エクセルでwavファイルを取り込んでmp3で保存することは可能でしょうか?
51:デフォルトの名無しさん
12/08/29 07:07:14.33
>>50
もちろん可能ですよ
WAVファイルを読み込んで、WAV→MP3に変換して、MP3ファイルを保存するだけです
WAVやMP3の仕様を入手できればそれほど難しくはありません
52:デフォルトの名無しさん
12/08/29 09:04:19.89
SOXとかのDLL使えば楽勝じゃね?
53:デフォルトの名無しさん
12/08/29 15:27:24.12
ruby2.0がかなりすごいらしい
54:デフォルトの名無しさん
12/08/29 16:00:34.47
福沢諭吉「脱亜論」 1885年3月16日 時事新報
日本の不幸は中国と朝鮮だ。
この二国の人々も日本人と同じく漢字文化圏に属し、同じ古典を共有しているが、
もともと人種的に異なるのか、教育に差があるのか、 日本との精神的隔たりはあまりにも大きい。
地球規模で情報が行き来する時代にあって、近代文明や国際法について知りながら、
過去に拘り続ける中国・朝鮮の精神は千年前と違わない。
国際的な紛争の場面でも「悪いのはお前の方だ」と開き直って恥じることもない。
もはや、この二国が国際的な常識を身につけることを期待してはならない。
「東アジア共同体」の一員として その繁栄に与ってくれるなどという幻想は捨てるべきである。
日本は、大陸や半島との関係を絶ち、 欧米と共に進まなければならない。
ただ隣国だからという理由だけで特別な感情を持って接してはならない。
この二国に対しても、国際的な常識に従い、国際法に則って接すればよい。
悪友の悪事を見逃す者は、共に悪名を逃れ得ない。
私は気持ちにおいては「東アジア」の悪友と絶交するものである。
_,,,,,,__ __,,,__
ィjj)))))))))!!!!!彡ヽ,
/ミ/ ,}彡ヘ
|ミ{ -‐ ‐ ‐ ‐- {三=|
El==; ゚ ''==. |ミミ,|
`レfォ、,〉 :rfォ.、, !iル┤
. { `¨ i ・、¨ ´ `{ゞ'} 支那、朝鮮とは
. | '`!!^'ヽ .「´ 付き合うなと忠告しておいたのに。。。
! ,-ニ'¬-、 ,!|,_
. \´?` / ∧ヘ、
__/〉`ー ' ´ / 〉 \
_, ィ´「∧ / / 」¬ー- 、_
-‐ ´ / / ヽ、/ / iヾ ヽ
55:デフォルトの名無しさん
12/08/31 06:14:33.68
誤爆にも程がある
56:デフォルトの名無しさん
12/08/31 06:54:07.85
誤爆じゃなくて荒らしだろ
この手の書き込みは、何の脈絡も無く書かれるから誤爆(投稿スレ間違い)っぽくも見えるが
自己主張を拡散するために脈絡のないスレであっても意図的に投稿しているので
誤爆、誤投稿の類ではない
やってる本人は、自己の主張の正しさを拡散しようとしてるのだろうけど
こういうマナー違反な荒らし宣伝的な投稿を繰り返せば
主張の内容は拡散されても、その主張は荒らしを繰り返すような
キチガイの主張としてしか認識されなくなって逆効果なんだけど、たぶんバカだからそこを解ってない
57:デフォルトの名無しさん
12/08/31 12:26:50.43
>>50
エンコードに必須な複数の技術に特許かかってるから無理っぽいぜ
58:デフォルトの名無しさん
12/09/01 17:56:29.75
レイヤー1と2はいける
3は無理ゲー
59:デフォルトの名無しさん
12/09/14 07:38:02.71
コマンドラインのフリーウェアを呼び出す
60:デフォルトの名無しさん
12/09/18 17:48:54.06
OS 7(64bit)
excel2010
memory 8G うち使ってんのは1.8Gくらい?(タスクマネージャーで)
cpu i5
漠然とした質問になってしまいますが、Excelが応答なしになるのを回避出来る手段は
DoEvents以外にどのようのものがあります?
今作ってんのがやたらに応答なしになってしまうもんで^^;
61:デフォルトの名無しさん
12/09/18 17:53:44.40
応答無しになる原因がわからないと、なんとも言えないよ。
62:デフォルトの名無しさん
12/09/18 17:57:40.25
>>60
応答なしになるミニマムコードを晒してみ
63:デフォルトの名無しさん
12/09/18 18:15:21.46
期待通り動かすと応答なし状態になるのを改善したいのか、
なぜ応答なしになるのかわからないけど、それを避けたいのか
64:デフォルトの名無しさん
12/09/18 18:29:14.33
>>60
セルを頻繁に書き換えるようなコードの場合は再計算、再描画を止める
65:デフォルトの名無しさん
12/09/18 19:05:10.60
>>61
…確かに
>>62
DBとのやり取り部分があったりするので他の環境では実行不可なんです orz
>>63
個人的には後者なんですけど、晒せない以上回答は無理ですよね
>>64
再計算はありません。シートの切替も無いので再描画云々でもないです
ということでスレ汚しすいませんでした
66:デフォルトの名無しさん
12/09/18 19:24:56.82
>>65
そりゃDBの応答待ちなんじゃねーの?
ステップ実行してみたら?
67:デフォルトの名無しさん
12/09/18 19:48:42.30
>>65
実行の可不可なんてどうでもいいからソース晒せっての
68:デフォルトの名無しさん
12/09/18 20:32:32.47
度々スレ汚しすいません
ソースの中で無限ループしてるとこがあり、それを修正したら直りました
m(__)mです
69:デフォルトの名無しさん
12/09/26 11:04:16.66
テキストファイルがあるとして、そのテキストファイルがUNICODEなのかANSIコードなのかどうかって判定できます?
70:デフォルトの名無しさん
12/09/26 11:38:17.65
馬鹿には無理
71:デフォルトの名無しさん
12/09/26 16:06:35.86
>>69
基本的には機械的に判別するのは無理
UNICODEの場合、先頭に特殊なバイト列が入ってる場合がある
それ以外だと、それぞれのコードで文字として不適切なバイトコードがあるかどうか見る
72:デフォルトの名無しさん
12/09/26 18:29:04.04
>>71
>機械的に判別するのは無理
そうっすかぁorz
今、手元にUNICODEのテキストファイルがあって、バイナリエディタで見れば先頭が FFFEなんでそれを見ればいいのかなと
思ってたんですが、UNICODEもいろいろ種類がありそうですからねぇ
諦めます
73:デフォルトの名無しさん
12/09/26 18:33:26.19
>>72
そりゃBOM(要検索)だ。
74:デフォルトの名無しさん
12/09/26 23:25:27.72
>>72
前に作ったからキーワードだけ
・Openステートメントでバイナリで開く
・Byte型の配列に格納する(InputB と LOF を使う)
・先頭の二要素(2バイト)を確認して、それぞれFF、FEであるか確認する
適当だけどこれでいいと思う
75:デフォルトの名無しさん
12/09/27 06:19:31.60
>>74
thxです。
76:デフォルトの名無しさん
12/09/27 10:49:38.07
>>74
全然良くない。
BOM無しのファイルもあるんだけど。
BOM無しのファイルは絶対に取り扱わないか、BOM無しの場合判定に間違っても良いならそれでいいけど。
77:デフォルトの名無しさん
12/10/24 04:16:32.77
VBA使ってエロ画像取得ってできるの?
78:デフォルトの名無しさん
12/10/24 08:45:33.09
できる
79:デフォルトの名無しさん
12/10/24 12:11:20.64
自動でエロAAを自動増殖させるプログラムください
80:デフォルトの名無しさん
12/10/24 21:56:10.26
自動で自動増殖・・・
なんか頭痛が痛くなってくる言い回しだなw
81:デフォルトの名無しさん
12/10/24 22:24:54.93
最初の自動は最後のくださいにかかってる
82:デフォルトの名無しさん
12/11/09 21:30:39.40
VBAでADSIを利用して、Outllokパブリックフォルダのアクセス権変更を行うことは可能でしょうか?
VBAを実行する環境はサーバではなくクライアントマシンで、パブリックフォルダの所有権を持ったユーザでログオンします。
ヒントだけでも頂けると有り難いです。
よろしくお願いします。
83:デフォルトの名無しさん
12/11/09 21:32:36.89
>>82の追記です。
目的は、大量のアクセス権変更を一括処理化することです。
84:デフォルトの名無しさん
12/11/09 22:14:07.65
>>83
要するに、知りたいのはアクセス権変更じゃなく
ディレクトリツリーの一括処理方法なんだろ?
85:デフォルトの名無しさん
12/11/09 22:34:16.43
>>84
はい。
少しぐぐってはみたところ、「サーバ環境での処理にADSIで~」という記事ばかりがヒットしてきて、
クライアント環境からアクセス権変更などの処理がまず可能なのかが分からなくて。。
86:デフォルトの名無しさん
12/11/10 15:18:18.32
可能だよ。少しではなく本気でググればクライアントからのやり方も解説されてるから頑張れ。
87:デフォルトの名無しさん
12/11/10 16:03:42.22
馬鹿には無理
88:デフォルトの名無しさん
12/11/10 16:59:51.73
要するに>>87には無理
89:デフォルトの名無しさん
12/11/10 18:15:28.02
(私みたいな)馬鹿には無理(です)
90:デフォルトの名無しさん
12/11/10 21:01:03.67
事務職なのだが、職場のWebシステムが出来が悪くて、設計ミスでシステムで治せないから、
データ修正を手入力で何千件もやれとメーカー様から言われた。
頭にきたので、VBA(端末にエクセルしか入ってない)で、IEの自動操作で修正入力しようと
作ってはみたのだが、ふと思ったのだが、これって著作権違反になる?
同じように困ってるほかの組織にプログラムを配るのも、無償、有償かかわらずダメ?
91:デフォルトの名無しさん
12/11/10 21:17:03.85
何言ってんだ
92:デフォルトの名無しさん
12/11/10 21:25:49.46
>>90
H社?
93:デフォルトの名無しさん
12/11/10 21:34:33.74
>>92
Yes。
94:デフォルトの名無しさん
12/11/10 21:53:06.02
ああ、某ワン・ツーのことね
95:デフォルトの名無しさん
12/11/10 22:39:35.57
某ワン・ツー とは?
96:デフォルトの名無しさん
12/11/10 22:51:36.74
>>90
誰が何の著作権を違反しているの?
97:デフォルトの名無しさん
12/11/10 23:01:01.10
>>95
某社の社内事務専用システム。
98:デフォルトの名無しさん
12/11/10 23:06:39.80
>>90
プログラムを作ったのはあなたでいいの?
何を参考にした?あるいは何かを丸パクリした?
それには他者が権利を主張するどのようなものが関わってる?
細かいところちゃんと書いてくれないと望んでる答えにならないけど、
今書いてる限りではたぶんならないと思うけどね。
あと著作権は余裕があったらさわりだけでも勉強しましょう。
様々なテストケースでちゃんと試してから配れ。
自分とこでちゃんと動いても他所のとこで動かなかったなんてよくある話。
個人で作ったものだし、一気に配らない方がいいかも。
そのプログラムを配布した事でお前さんへの責任が一気に増えることに
なってしまうから気をつけなされ。
99:デフォルトの名無しさん
12/11/12 00:21:59.82
>>98
作成したのは自分。Webシステムのhtmlが見えている状態(右クリック禁止処理はされてるが、
IEの通常機能で丸見え)のため、ボタン等の各要素のNameがわかったため、自動操作のコード
は作りやすかった。
メーカーのコードを改変しているわけではないし、Webシステムも正規の権限でログイン
している。ただ、メーカーのコードを解析し、そのNameを自分のコードで利用しているのは
どうなのかなと思ったわけです。またWebシステムの機能を、ログインした後、VBAから自動
操作で、表示された情報を読み書きし、ボタンを押していくって流れなので、入力値のエラ
ーチェックや、面倒な計算などは、すべてWebシステムがやってくれてる状態。
Nameを使わないコーディングもできるけど、もうすでに作ってしまった。
又、ただの末端ユーザーのため、テスト環境すらなく、恐ろしいことに
ぶっつけ本番。その分、注意して作成してはいる。
メーカー様や、専属SE、システム部門には、頼れない状態。
でも、数千件におよぶ手作業でのシステムの入力だけは、阻止したい。
100:デフォルトの名無しさん
12/11/12 00:32:16.28
右クリック禁止かぁ、懐かしいよね。
今となっちゃIE、Firefox、Chrome、Opera、Safari
通常用いられるどのブラウザでも普通にメニューに表示されている
開発者用機能で全部見れるんだからさ。
101:デフォルトの名無しさん
12/11/12 00:41:39.98
>>99
ただの末端ユーザの作ったものを他の組織に展開するとか
責任の所在がはっきりしてるならそれでいいんじゃないの?
VBAに関係ないからそもそもスレチな気がする
102:デフォルトの名無しさん
12/11/12 05:42:28.78
それ以前に「質問する態度」ではない。内容も文体もね。
単に、自分のスキルをさり気なく自慢したいだけ。
103:83
12/11/12 19:58:29.62
遅レスすみません。
>>86
可能であれば頑張って調べて書いてみます。
ありがとうございました!
104:デフォルトの名無しさん
12/12/07 14:19:59.44
VB.NETはおいておいて・・・
VB6とExcel2010とかに付属してるVBAって
シンタックス的な違いとかあるのでしょうか??
もしよろしければ違いを明示しているサイトなどを教えてください。
105:デフォルトの名無しさん
12/12/07 14:22:38.26
>>104
違いはない
106:デフォルトの名無しさん
12/12/07 15:17:40.28
>>105
素早い回答ありがとうございます。
言語的な勉強はVBの本でやってみます。
ありがとうございました。
107:デフォルトの名無しさん
12/12/08 23:14:32.41
さっきVBAスレに誤爆しました
exlap.rb使ってRubyでマクロ組み込もうとしてます
Excel2007で.xlsで保存してるんだけどマクロのセキュリティはあらかじめExcelの方で
有効に設定しなきゃいけないんだよね?
有効にしても動かないしどれ選んでも動かないんだけどどうしてなの?
108:デフォルトの名無しさん
12/12/08 23:19:30.97
>>107
Excel VBA スレで突込みが入ったのは
"Excel" の部分ではなく "VB"A の部分が原因だよ。
109:デフォルトの名無しさん
12/12/08 23:20:02.69
ばかすぎた
2007では.xlsmにしなきゃいけないのか
失礼しました
110:デフォルトの名無しさん
12/12/09 10:19:35.09
>2007では.xlsmにしなきゃいけないのか
www
ま、知らなかったら引っかかるのも当然で、俺も最初は?となったけど
111:デフォルトの名無しさん
12/12/15 06:56:12.38
Excel2007の参照設定をマクロの実行で変更する方法ありませんか?
別言語でExcelを操作しているのでその都度変更できません
具体的にはMicrosoft Scripting Runtimeにチェックを入れたいです
ひとつの別言語のプログラムでMicrosoft Scripting Runtimeにチェックを入れるマクロを実行→やりたい処理というように書きたいです
112:デフォルトの名無しさん
12/12/15 07:33:34.78
>>111
References.AddFromFile
113:デフォルトの名無しさん
12/12/15 07:33:43.99
>>111です
直接書き込むと出来る方法をみつけました
ですが,外部から他言語でマクロを組み込もうとすると
"C:\Windows\SysWOW64\scrrun.dll"と書いたところが
"C:WindowsSysWOW64 crrun.dll"と書き込まれてしまいエラーが出てしまいます
これを回避する方法はありますか?
114:デフォルトの名無しさん
12/12/15 07:34:39.95
>>112
書き込んでいる間にかぶってしまいました
ありがとうございます
それを見つけて実装しているところですが>>113の問題にぶつかっているところです…
115:デフォルトの名無しさん
12/12/15 08:03:36.65
そんな初歩的なところで躓くなよw
116:デフォルトの名無しさん
12/12/15 09:26:08.46
解決しました!嬉し
117:デフォルトの名無しさん
12/12/24 14:46:50.28
誘導されてしまったので、こっちで再度質問させてもらう。
クラス モジュールで実装したクラスを、クラス名から動的にインスタンス化する方法ってないだろうか。
VBAProject
- 標準モジュール
+ FilesCommon
- クラスモジュール
+ Files
+ TreeFiles
+ ListFiles
みたいになってるときに、
[TreeFiles]
Implements Files
' ~
[ListFiles]
Implements Files
' ~
[FilesCommon]
Sub ShowList(ListType As String)
Dim Files As Files
Set Files = CreateObject(ListType)
' Filesを使ったリスト化処理
End sub
てな感じにして、クラスモジュールの追加と呼び出し文字列(ListType)の変更だけで
挙動を変えたい(ListType の Select Case を作ってそこもメンテさせるってのはちと不味い)のだが、良い方法ないもんかな
CreateObjectは当然COMでもなんでもないクラスモジュールを扱えないし、
Appication.EvaluateやCallByNameはNewできないし、
VBScriptのEvalをホスト越しに呼び出してもプロジェクト内部のクラスモジュールまではあずかり知りません、だし、
うまく解決するすべがないものかと・・・。
118:デフォルトの名無しさん
12/12/24 15:06:31.62
> 質問させてもらう。
> ないだろうか。
何様だよ
119:デフォルトの名無しさん
12/12/24 15:18:31.96
>>118
質問スレなのだから質問者がいないと成り立たない。
質問する方が立場が上なのは当然である。
120:デフォルトの名無しさん
12/12/24 15:28:21.78
「質問」を「生活保護」に変えてみると楽しい事に
121:デフォルトの名無しさん
12/12/24 15:36:37.23
自演質問自演誘導
アホかとw
122:デフォルトの名無しさん
12/12/24 16:03:55.41
ム板は相変わらず成りすましが酷くて話にならんな
123:デフォルトの名無しさん
12/12/24 17:14:29.11
IDありにすべし
124:デフォルトの名無しさん
12/12/24 17:25:26.35
>>117
それが仮にできたとして、ListTypeに不正な値が入ってたらどうする気だ?
125:デフォルトの名無しさん
12/12/24 18:29:09.00
>>124
そんときはエラーになっていい
126:デフォルトの名無しさん
12/12/24 19:06:07.30
おまいら何時間かかってんだよ。
早く答えろや。
127:デフォルトの名無しさん
12/12/24 19:34:23.92
>>124
エラーになっていいって事は、エラーにならなくてもいいのか?
想定外のオブジェクト生成されて平気だと?
恐ろしい設計だな
128:デフォルトの名無しさん
12/12/24 21:33:40.50
>>123
ム板やマ板でID有りにしたところで、大した意味はない
ここに来るほどの人ならそんなもん(ry
129:デフォルトの名無しさん
12/12/24 22:02:01.69
IDを導入したら白濁桃が名無しと使い分けできなくて困るだろ
可哀そうだから反対だわ
130:デフォルトの名無しさん
12/12/24 22:14:51.45
>>127
ユーザーの入力を受けるわけじゃないから。
そこに入る文字列は、マクロをカスタマイズした人間が決める。
カスタマイズ時の手間を減らしたいだけなんだ。
131:デフォルトの名無しさん
12/12/24 23:26:48.27
>>117
無理
132:デフォルトの名無しさん
12/12/24 23:50:17.13
>>117
>Sub ShowList(ListType As String)
これじゃだめなの?
Sub ShowList(Files As Files)
133:デフォルトの名無しさん
12/12/29 15:01:13.64
Excel VBAでマークシート(JPEG画像化済)のOCRを作りたいのですが、
ググってもこれといったヒントが見つかりません
ライブラリ的なものでもよいですし、力技でもよいですし、
なにかヒントをいただけないでしょうか?
134:デフォルトの名無しさん
12/12/29 18:47:50.52
>>133
ExcelVBAなんだから、Excel上での処理が基本の言語なんだから
なんでそこまで複雑なことをやらせようとするかが不思議だ
勉強したわけでもなんでもないが、VBとかJava、Cとかの
メジャーな言語を使うとか、画像処理自体に強いライブラリを持つ言語を
選べばいいんでないの?
135:133
12/12/29 19:09:08.47
>>134
読み取った結果はExcelで管理して集計とかもExcelでやりたいしExcelで全てできれば便利かな~、と思ってね
VSとかEclipseとかのIDEをインストールするのも手間だし(そもそも知識がないからわからんし)
136:デフォルトの名無しさん
12/12/29 19:59:20.07
>>133
URLリンク(imagingsolution.blog107.fc2.com)
137:133
12/12/29 21:44:29.92
>>136
情報ありがとうございます
画像をセルに表示する発想はなかったのでちょっと面白そうですね
ただパフォーマンス的に難がありそうなので外部ツールで二値化と縮小化を行ってから
シートに取り込んで処理してみようかと思います
138:デフォルトの名無しさん
12/12/29 22:05:18.72
二値化とかできるなら後は特定座標が塗られてるかどうか判断するだけだと思うんだがな
マークシート読み取りと文字認識は別なレベルの話だぞ
139:133
12/12/29 22:10:18.37
>>138
その後ググってbmp2csvなるものを見つけました
OCRじゃなくてOMRでしたね、間違っててスミマセン
140:デフォルトの名無しさん
13/01/06 15:18:27.81
例えば5桁の数値があったとして、その各桁の数字を知るとしたら、
(eg 54289 → 5,4,2,8,9 56→ 0,0,0,5,6)
5桁目を10000で割り商を得て、余りが0でないなら次に1000で割り、…10で割って
商と余りを得る
みたいな方法でやっていくしかない?
141:デフォルトの名無しさん
13/01/06 15:22:30.58
それでいい
142:デフォルトの名無しさん
13/01/06 15:54:01.43
やっぱりVBAではそれしかないか。ありがとう
143:デフォルトの名無しさん
13/01/06 17:01:33.66
>>140
あまり変わらないけど、文字列とみなして
1文字目+2文字目+・・・
としたほうがコードがシンプルになるかもね。
144:デフォルトの名無しさん
13/01/06 17:09:04.33
>>143
最初に文字列とみなし、その長さを調べて、midで分解していくってこと?
上記の例なら 56は2文字だから上3桁は0で残り2文字について調べれば良いのか。
そういう手もあるのか、なるほどです。
145:デフォルトの名無しさん
13/01/06 17:16:24.17
>>140の例に上げてる奴に2桁の数字も入ってるから
>>143まんまだと失敗する恐れがある。
左から取得したら駄目だな。
右から1文字目、2文字目~を取得ということか。
146:デフォルトの名無しさん
13/01/06 17:19:04.54
配列設定
数値設定
整数値を取得
ループ開始
10のあまりを配列に出力
再配列
10の商を数値に再格納
数値が0の場合ループ解除
ループ終了
これでいいやないの
147:デフォルトの名無しさん
13/01/06 17:24:13.47
>これでいいやないの
言語障害ですか?
148:デフォルトの名無しさん
13/01/06 18:32:07.25
>>147
外国人か?
口語体は義務教育で習う
149:デフォルトの名無しさん
13/01/06 18:34:45.45
最大値が99999と決まっているなら
100000を足してからMID関数で2~6文字目を取り出すのが一番コードがシンプルになるんでない?
Format関数でもいいけど
150:デフォルトの名無しさん
13/01/06 18:49:27.64
どっちでもええやないの
151:デフォルトの名無しさん
13/01/06 19:55:03.87
>>148
x これでいいやないの
o これでええやないの だろ?
152:デフォルトの名無しさん
13/01/06 20:00:13.11
言語障害とか以前に精神とか脳を汚染されてるんじゃないだろうかという疑念が
153:デフォルトの名無しさん
13/01/06 20:18:35.52
「これでいい」「これでええ」
どっちでも通じるんだよ
こういうのって日本語学校ではなかなか教えないからね
154:デフォルトの名無しさん
13/01/06 20:30:29.15
にゃるほろー
正しい日本語、なんてどこにもないよね
使う人によって違うし、使ううちに変化するし、文化や流行を組み込んでいくものだし
VBAスレで自分の知らない日本語の使い方されたからって個人攻撃する
その卑しい精神性をまず自覚しろってことですねてんてー
155:デフォルトの名無しさん
13/01/06 22:20:57.37
>>149
なるほど!
156:デフォルトの名無しさん
13/01/07 12:53:44.27
記録されたマクロを解読しているのですがわからないところがあるので質問させてください
A1にもともと書かれているテキストがとても長くてダブルクリックしないと全文は読めない場合
Range("A1").Select
ActiveCell.FormulaR1C1 = "A1の長いテキスト全文"
Range("B1").Select
こうなった時はFormulaR1C1で何が起きているのでしょうか
実際にA1をダブルクリックして全文を読もうとするとマクロは
Range("A1").Select
ActiveCell.FormulaR1C1 = "あ"
With ActiveCell.Characters(Start:=1, Length:=255).Font
.Name = "MS Pゴシック"
.FontStyle = "標準"
.Size = 8……といった感じでフォントの設定が数行入った後で、
Range("B1").Select となるのですが…
157:デフォルトの名無しさん
13/01/07 12:55:59.85
すみません"あ"のところは前半と同じ"A1の長いテキスト全文"です
158:デフォルトの名無しさん
13/01/07 14:41:35.69
FormulaR1C1の位置はプロパティって言って種類や形式を指定する部分だから
その部分では何も起きてないし何も起きない。
そのコードを読めればわかるけど
セルをダブルクリックする行為はエクセルからしたらそのセルの値を再入力するのと同じ行為ってこと
んでもって、>>156のwith以下はただセルのフォントを指定してるだけだら
今回は省略してもいい部分
159:デフォルトの名無しさん
13/01/07 14:46:09.17
>>156
セルのダブルクリックは「キーボードによるセルの編集開始」なので、それはマクロでは実現できませんし記録もされません
そのマクロには「(何もせずに)編集終了」→「カーソル移動」が記録されているだけです
160:デフォルトの名無しさん
13/01/07 17:09:24.10
つまり記録した人はセルをselectして→何もせずに編集終了して→別のセルをselectしたのですね
何もせずに編集終了ってどういう動作をすれば記録されるのでしょうか
いろいろ試してるんですけど同じようになりません
161:デフォルトの名無しさん
13/01/07 19:57:20.18
>>160
VBAにそんな機能がないので、どうやっても記録されない
162:デフォルトの名無しさん
13/01/07 20:28:50.49
エクセル2003だとセルA1をダブルクリックすれば
Range("A1").Select
ActiveCell.FormulaR1C1 = ""
の2行が記録される
最後にアクティブを解除するために別のセルクリック
163:デフォルトの名無しさん
13/01/07 20:40:00.42
ぜんぜんトンチンカンなこと言ってた
>>160
何もせずに編集終了は別のセルクリック(select)すればいい
164:デフォルトの名無しさん
13/01/08 00:11:32.61
>>160
セルをダブルクリックする目的は、隠れている部分を読むためなんだよね?
マクロでセルをSelectするだけでは、隠れた部分は出てこないっていうか、そんな方法はないよ
API無しで簡単にやるなら同位置にテキストボックスを貼り付けるぐらいしかないんじゃないかなあ
165:デフォルトの名無しさん
13/01/08 00:12:58.27
そもそもマクロの実行中にセルをキーボードで編集することはできないんじゃ
166:デフォルトの名無しさん
13/01/08 01:00:52.81
sendkey使えば?
167:デフォルトの名無しさん
13/01/09 15:07:51.75
SendkeysでF2を送っても、VBAの実行中はセルの編集はできない(編集状態にならない)
168:デフォルトの名無しさん
13/01/09 16:08:16.48
あんまやったことないけど
恒常ループかけて編集可能にしてみるのは?
169:デフォルトの名無しさん
13/01/09 16:24:50.75
とりあえず右クリックで
cancel =TRUE にするかsendkeysの後doeventsでセル編集モードになった
文字送りも可能
シートを最前面に出して実行すればバックグラウンドでコード動かしてても問題なし
必要なら同期処理とればおk
170:デフォルトの名無しさん
13/01/09 17:18:03.09
ってそもそも問題が全然違うんだな
単純に見やすくしたいだけなら
ショートカットキーにマクロ割り当てて
セルの書式設定を折り返しに、フォント小さくしたり
行や列のサイズをコントロールしたり
見終わったら元に戻すとか
がちがちにやるなら表示フォントから文字列サイズ計算して綺麗に並べるとか
透明化フォームに読み出した文字を拡大表示して虫眼鏡ツール作るとか
いろいろやり方はあるかと
171:デフォルトの名無しさん
13/01/09 19:30:41.55
個人で遊んでいるなら良いけどVBAのSendKeysは不安定でバグ含みなので
業務用を考えるなら慎重にな(特に{F2}{NUMLOCK}絡み)お勧めはWSH併用
172:デフォルトの名無しさん
13/02/03 14:37:06.94
初心者の質問丸なげで申し訳ないです。
excel2002でマクロ組んでいますが、
sheetにある画像のみ印刷するように設定したいと思っています。
そんな方法あるでしょうか?
よろしくお願いします。
173:デフォルトの名無しさん
13/02/03 15:18:48.82
>>172
シートのコピーを作って画像以外を消去してから印刷
174:デフォルトの名無しさん
13/02/03 18:48:17.90
>>173
ありがとうございます。できそうな気がしてきました。
175:デフォルトの名無しさん
13/02/05 23:23:00.31
すみません、質問させてください。
Excel2003でUserForm1の中にTextBox1があります。
あるマクロからこのUserForm1をロードして、自動的にTextBox1の中に
あるセルのデータ(或いは変数に入っているデータ)を入力させたいのですが、
この様な方法はあるのでしょうか?
宜しくお願いいたします。
176:デフォルトの名無しさん
13/02/06 00:59:16.93
>>175
UserForm1.TextBox1.Text = Sheet1.Range("A1").Value
UserForm1.Show
フォームがモーダルじゃなくてもいいなら
UserForm1.Show False
UserForm1.TextBox1.Text = Sheet1.Range("A1").Value
177:デフォルトの名無しさん
13/02/06 21:47:11.72
>>176
ありがとうございます!
逆にモードレスの方が良かったので大変助かりました
178:デフォルトの名無しさん
13/02/06 22:36:16.80
諸先輩方、どうか教えておくんなまし。
エクセルVBAエディタにて
IF文で文字変数がユーロ記号(?)の場合の文を書きたいんですけど、VBAエディタ上で書くと。。。
If str = "?" Then
何かしら実行
End If
なのが
If str = "?" Then
何かしら実行
End If
みたく?マークになってしまいます@Office2007/Win7のVBA
エクセルのシートやパワポ上ではふつーに?記号は表示されるのに
なにゆえVBAエディタ上だけ?になるのでしょうか?
Unicodeとかのコード設定かなと思ったのですがVBAエディタ上で
設定できそうな項目なさそうですし。。
ぜひ教えて下さい!
179:デフォルトの名無しさん
13/02/06 23:43:04.98
>>178
VBAそのものはUnicode対応だが、VBEはしてない
ChrWを使え
180:デフォルトの名無しさん
13/02/07 00:38:30.25
>>179
ありがとうございます!
msgboxで出してもずっとハテナマークだし半泣きでした。
頂いたヒントでググってたら↓があって読んだら仕組みわかりました。
URLリンク(codezine.jp)
181:デフォルトの名無しさん
13/02/13 08:17:48.50
VBAでIEを操作し、リンクをクリックしたいんですけど
それについて詳しく解説してるサイトとかありますか?
ていうか、VBAでIEを操作する際って
XXXXXX.Navigate "URLリンク(XXXXX.ne.jp)
このページを開く構文は必ず必要なんですか?
自分でIEのページを開いて、ページを開いた後の処理をVBAにやらせるってことはできないんですか?
ページを開いた後の処理をVBAにやらせるには、ページを開くことからVBAにやらせないといけないんですか?
182:デフォルトの名無しさん
13/02/13 08:44:48.82
きみにおあつらえむきのcomponentがある
URLリンク(www.activexperts.com)
183:デフォルトの名無しさん
13/02/14 08:40:10.44
先輩方にご教授願いたい。
ExcelVBAでマクロ作ってるんですが、Win32API関数で、引き数にNULLポインタを渡す場合は どう表記したら良いのでしょう?
184:デフォルトの名無しさん
13/02/14 10:07:28.80
>>183
0
185:デフォルトの名無しさん
13/02/14 10:26:57.32
>>184 有難うございます。
0だと型エラー為ると勝手に思い込んでました。
お恥ずかしい
精進します
186:デフォルトの名無しさん
13/02/14 18:25:20.83
>>185
vbNullString使え
187:デフォルトの名無しさん
13/02/14 18:27:55.53
いや、0のがいいと思う。
memset(ptr, NULL, len)
みたいで気持ち悪い。
188:デフォルトの名無しさん
13/02/14 18:29:15.89
>>187
確か、APIの引数にNULLポインタとして渡す目的も、vbNullStringにはあったと思うが
189:デフォルトの名無しさん
13/03/09 16:39:33.15
outlookで予定表をcsv書き出しするとアラームの日付と時刻の項目があるんですけど、
AppointmentItemオブジェクトを見てもReminderプロパティにdateとかtimeがないんですけど
どこにセットしろっていう話なんでしょうか。
190:デフォルトの名無しさん
13/03/09 18:08:31.90
URLリンク(msdn.microsoft.com)
URLリンク(www.youtube.com)
191:デフォルトの名無しさん
13/03/09 23:11:55.58
>>190
レスありがとうございました。とりあえず、引き算して掛け算してReminderMinutesBeforeStartに放り込んで対応しました。
192:デフォルトの名無しさん
13/03/13 18:07:18.47
MSはVB6からVB.NETにしたのにVBAはNETにしないの?
新人にVBAの改造させたら言語が古いとか行って文句を言ってくる
193:デフォルトの名無しさん
13/03/13 18:26:38.76
Excel4Macroで実装させろ
194:デフォルトの名無しさん
13/03/13 19:03:42.53
そいつの得意な言語で作らせる代わりに納期を半分にしたらいい
195:デフォルトの名無しさん
13/03/13 23:41:33.72
文句を言いながらも、VBAを十二分に使いこなしていくならそれでいい。
196:デフォルトの名無しさん
13/03/14 03:04:46.29
accessで作る出力用レイアウトは、行高と列福を調整するとき、
その左右または上下の枠が自動的にずれないからレイアウトの調整が大変と聞いたのですが、
他の言語でもそうなんですか?
素人にとってはエクセルのように自動でずれてくれるようなイメージが刷り込まれています。
おかしなことを言ってたらすいません。
197:デフォルトの名無しさん
13/03/14 08:07:18.12
>>196
内容ではなく文体がおかしい
いや、なんとなく言ってることは解るんだけど、
エスパーしてまで答えるような内容じゃないしな
198:デフォルトの名無しさん
13/03/14 14:06:05.42
それ言語の話じゃなくてエディタの話だしな
199:デフォルトの名無しさん
13/03/14 20:30:01.45
ここはごく数人のヘタレどもがチンシコする糞スレです
うまく答えられないときはエラそうになんだかんだいちゃもんつけてきます
看板に偽りスレなので素人が質問しても時間の無駄です
わかったら相手にせず黙って去りましょう
200:デフォルトの名無しさん
13/03/14 21:24:08.29
ていうかVBA全く関係ない質問に見えるけど。
201:デフォルトの名無しさん
13/03/15 17:56:40.86
Outlookで予定表の一覧をcmd.exeに出力する方法を教えてください
202:デフォルトの名無しさん
13/03/15 18:20:57.68
CreateObject("WScript.Shell") を使います
203:デフォルトの名無しさん
13/03/15 21:03:48.32
>>201
cmd.exeに出力ってどういう意味だ?
とりえあず予定表の一覧なら
URLリンク(msdn.microsoft.com)(v=office.12)
204:デフォルトの名無しさん
13/03/20 12:25:21.26
PowerPoint2013で、vbaのマクロをボタンに登録したときの起動が遅いみたいなんですけど事情をご存知の方いませんか。
205:デフォルトの名無しさん
13/03/20 13:25:02.82
動作がおかしいって話はググるかメーカーへ
206:デフォルトの名無しさん
13/03/20 19:30:49.66
パソコン自体に既に異様に負荷をかけている
207:デフォルトの名無しさん
13/03/20 19:51:23.45
どうもスライドショーモードにしてる時に、マクロの実行までのタイミングでもたついてるみたいです。
始まってしまえば実行速度は2010と変わらないみたいです。
208:デフォルトの名無しさん
13/03/20 22:41:26.67
ワード2003で、フォームに入力した郵便番号、住所、氏名をテキストボックスに入力するVBAを作ったのですが、
氏名だけOKボタンを2回押さないと反映されません。なぜこうなるのでしょうか。
ワード2013では一度に反映されますが、2003で使う必要があるので困っております。
以下に参考までに実物をアップロードしました。どうかご確認・ご教授の程お願いします。
URLリンク(www.dotup.org)
209:デフォルトの名無しさん
13/03/21 06:10:43.68
了解
210:デフォルトの名無しさん
13/03/27 06:37:11.96
質問です。
EXCELのVBAでアプリを操作したいのですが、できますか?
したいことの大まかな流れですが、下記のURLでダウンロードできる「アマチュア局インターネット申請」のアプリを起動し、作業を自動でさせたいのです。
URLリンク(www.denpa.soumu.go.jp)
アプリは総務省提供のものです。
具体的な行いたい作業としては
①アプリを起動
②「確認」のダイヤログで「キャンセル」を選択
③新しく開いたウィンドウで「ファイルから読み込む」を選択
④「選択」のダイヤログでエクセル上にあるパスのファイルを選択
これを繰り返したいのです。
EXCELのVBAについては基本的な知識はあります。
よろしくお願いします。
211:デフォルトの名無しさん
13/03/27 07:10:35.43
>>210
じゃああとはWinAPIの知識だな
主にウインドウハンドルと、ウィンドウメッセージについて勉強してこい
大まかに話すと、該当アプリのウィンドウハンドルを取得して
操作するコントロール(ボタンや入力ボックスなど)のハンドルを取得して
そのハンドルに操作メッセージを送れば良いだけだ
あるダイアログのOKボタンのハンドルが12345だとしたら
ハンドル12345にクリックメッセージを送れって命令を書いてやると、そこに
マウスカーソル持って行かなくてもそのボタンをクリックしたことになる
ただ、この手のものはプログラムで申請の自動化とかすると、不正(提供者が意図しない不正規の手順)な申請とかで
プログラム作った奴が訴えられかねないから、自己責任&具体的なコード回答は無しで頑張るしかないぞ
212:デフォルトの名無しさん
13/03/27 14:01:02.51
>>210
(1)~(4)を繰り返すと、大量にアプリケーションが起動することになると思うのだが、やりたいのは
それなのか?
仮に、申請までを繰り返したい場合、法的/道義的にそれは許されるものなのか?
申請を受け付けるサーバへの攻撃と取られる可能性があるぞ。
213:デフォルトの名無しさん
13/03/27 16:54:29.77
スレ誘導
スレリンク(tech板)
214:210
13/03/28 07:38:38.73
回答ありがとうございます。
まず、私がこの操作を自動化させたい目的ですが
ファイルから読み込んだブラウザのウィンドウを連続印刷したいからです。
印刷処理の部分については自分でコードを作れると思いますので省いておりました。
このアプリを使って既に申請されている局の申請ファイルを読み込むと
申請した内容が整理された形でブラウザに表示されます。
WinAPIの知識ですか。
まずはネットで調べてみたいと思います。
215:デフォルトの名無しさん
13/03/28 15:15:35.91
WSH
216:デフォルトの名無しさん
13/04/04 17:55:38.87
すみません、下記コードを修正して頂きたいのですがお願いできませんでしょうか?
修正内容はダイアログを表示しないで自動的にtest1.jpgという名前でCドラ直下に保存できればと思います。
Option Explicit
'ファイル保存ダイアログ
Private Function GetSaveFileName() As String
Dim sfile As String
sfile = Application.GetSaveAsFilename(fileFilter:="JPGファイル (*.jpg), *.jpg")
If sfile = "False" Then
GetSaveFileName = ""
Else
GetSaveFileName = sfile
End If
End Function
Private Sub CommandButton1_Click()
Dim rg As Range
Dim cht As Chart
Dim fina As String
217:デフォルトの名無しさん
13/04/04 17:56:19.24
'保存ファイル名を取得
fina = GetSaveFileName
If fina <> "" Then
'選択範囲を取得
Set rg = Selection
'選択した範囲を画像形式でコピー
rg.CopyPicture appearance:=xlScreen, Format:=xlPicture
'画像貼り付け用の埋め込みグラフを作成
Set cht = ActiveSheet.ChartObjects.Add(0, 0, rg.Width, rg.Height).Chart
'埋め込みグラフに貼り付ける
cht.Paste
'JPEG形式で保存
cht.Export Filename:=fina, filtername:="JPG"
'埋め込みグラフを削除
cht.Parent.Delete
End If
End Sub
218:デフォルトの名無しさん
13/04/04 18:02:12.58
馬鹿には無理
219:デフォルトの名無しさん
13/04/04 18:15:13.26
>>216
嫌です
220:桃白白
13/04/05 12:52:08.01
>>216
桃白白がお願いされちゃう。
Option Explicit
'ファイル保存ダイアログ
Private Function GetSaveFileName() As String
GetSaveFileName = "c:\test1.jpg"
End Function
Private Sub CommandButton1_Click()
Dim rg As Range
Dim cht As Chart
Dim fina As String
'保存ファイル名を取得
fina = GetSaveFileName
If fina <> "" Then
Set rg = Selection
rg.CopyPicture appearance:=xlScreen, Format:=xlPicture
Set cht = ActiveSheet.ChartObjects.Add(0, 0, rg.Width, rg.Height).Chart
cht.Paste
cht.Export Filename:=fina, filtername:="JPG"
cht.Parent.Delete
End If
End Sub
221:216
13/04/05 14:58:35.87
>>220
無事動きました
本当にありがとうございました orz
222:デフォルトの名無しさん
13/04/05 15:08:41.38
最後がm(_ _)mではなくorzなのが回答内容を反映してて良い味出てるな
223:桃白白
13/04/05 15:47:21.55
>>222
おいやめろ。まるで桃白白がお答えした内容が期待はずれの
ものであり桃白白に失望したといわんばかりじゃないか。
そんなことほんとは思ってないくせに。心にもないこと言わないでちょうだい。ふん。
224:デフォルトの名無しさん
13/04/16 15:03:53.95
おまいら最高すぎ。
クラムチャウダー吹き出した。
225:デフォルトの名無しさん
13/04/26 19:45:29.36
VBAというよりも出来た後のことなんですが、、皆さんマクロをどうやって管理されてます?
会社でバージョン管理システムを入れてるところならそれを使ってるんでしょうけど。
今んとこ、出来たマクロに日付を入れて特定のフォルダに入れてるんです( e.g xxx_20130402.xlsm etc)
が、やはり別のフォルダに入れて更新
したのを時々忘れてしまったりしてどうしようかなぁ~と思っています^^;
226:デフォルトの名無しさん
13/04/26 20:00:41.70
VSS
227:デフォルトの名無しさん
13/04/26 20:34:20.38
>>225
最後にマクロ保存のコードを追加したりしてマクロの保存もVBAでやっちゃえば?
228:デフォルトの名無しさん
13/04/26 21:13:14.06
>>227
実行した時に自分自身を特定のフォルダに上書き保存するってことですかね?
あぁそういう手もあるか。
229:227
13/04/26 22:37:35.63
>>228
ファイル名は日付で管理してるということだから
常に上書き保存じゃなくて同じファイル名が存在していないときのみ保存するとか。
230:デフォルトの名無しさん
13/04/26 22:58:05.30
>>229
参考になりました。ありがとう
231:デフォルトの名無しさん
13/04/27 01:31:45.70
俺の場合
エクセルVBAのマクロなんて、エクセル表の補助作業にしか使わんから
もとのエクセル表の管理が出来てればマクロの管理なんて考える必要ない
232:デフォルトの名無しさん
13/04/27 05:57:56.22
俺はVBAから入ったので、最初のころはExcelに関係ない
ウィンドウズアプリケーション的な物もVBAで作っていたから管理が面倒だった
そのうちVB6、そしてC#を使うようになったから今は>>231と同じだが
管理に奔走する奴等のことも理解できる
233:デフォルトの名無しさん
13/05/03 16:24:56.80
標準モジュールに自作したマクロが多くなりすぎて、修正を加えたいマクロを探すのが大変になってしまった
例えば、Sub JISAKU()のように マクロ名JISAKUからマクロを記述した該当モジュールを即座に見つける方法ってありますか?
234:デフォルトの名無しさん
13/05/03 16:54:08.84
普通に Ctrl + F で Sub JISAKU() と検索すれば良いのでは…。
235:233
13/05/03 17:26:52.89
>>234
ほんとだ!
こんな簡単に検索することができたのか
今まで何という無駄な時間を_| ̄|○
有り難う!!!!
236:デフォルトの名無しさん
13/05/04 00:36:10.00
その程度で喜んでるようならShift+F2で定義に移動した日にはショック死するんじゃないか
237:234
13/05/05 18:45:30.48
まさかとは思ったがw
補足だけど、検索後にプロパティウィンドウ
(デフォルトなら左上のはず)
の該当モジュールが反転するので、
検索対象がどのモジュールにあるのか一発でわかる。
236に便乗するけど、定義に移動したのちに
Ctrl + Shft + F2 を押下すると元の位置に戻るので
覚えておくと作業が捗るよ。
(プロシージャの数が増加するほど役に立つ。)
238:デフォルトの名無しさん
13/05/07 13:34:18.34
>>233
VBEが表示されているときにF2キーでオブジェクトブラウザが表示される。
そこで検索したり、"VBAProject"を選択してシートやモジュールを選択して、定義したマクロ一覧なんかをブラウズできる。
(VBAProjectというのはプロジェクト名のデフォルト)
VBEで編集中のときは、コード入力ウィンドウの上部に"(declaration)"と表示しているコンボボックスがあるので、そこで編集中のシートやモジュールの関数を選択できる。
239:デフォルトの名無しさん
13/05/11 15:38:41.96
Excel2010まではVBE終了させるとウィンドウの位置や大きさを以前は覚えてくれてたのに
Excel2013にしから一切覚えなくなった
Excel立ち上げてVBE開くたびにウィンドウが全て消えてるので不便です
Access2013のVBEは以前と変わらず覚えてるのだけど、Excel2013VBEの何が原因なんでしょうか?
240:デフォルトの名無しさん
13/05/14 10:41:53.28
エクセルVBAのスレッドで聞いたんですが回答が得られなかったのでこちらに書かせてください。
スマートアートオブジェクトの図についてなんですが、
vba上で、挿入した画像のみをクリアして、初期状態に戻す方法がありましたら教えてください。
241:桃白白 ◆9Jro6YFwm650
13/05/15 15:25:00.19
>>240
「vba上で」は「挿入した」にかかるのか「戻す」にかかるのか
桃白白よくわかんないんだけど、削除する画像にだけ特別な名前をつけちゃったらいんじゃない?
DeleteImage1みたいな。画像を列挙して名前にDeleteが含まれてたらそれを削除みたいな。
242:デフォルトの名無しさん
13/05/26 17:46:36.07
EXCELのVBAを使って、amazonの画像の取得を試みたいんだけど、
たとえば、[B]列セルにamazonの商品ページURLが入力してあって、
そのページ毎にある
URLリンク(ec2.images-amazon.com)●●●●._SL500_AA300_.jpg
という画像ファイルのURLを検索して[C]列セルに抽出したい場合、
どのようなコードを組めば良いでしょうか?
よろしくお願いします。
243:デフォルトの名無しさん
13/05/26 21:37:10.70
嫌です
244:デフォルトの名無しさん
13/05/26 23:35:03.88
>>242
vba html parser で検索
245:デフォルトの名無しさん
13/06/19 01:05:06.33
超初心者です。色々調べましたがわかりませんでした。
是非お力をお貸しください。
エクセルで、B列だけ、B2から下へ空白があるまでの文字を
テキストファイルに書き出し、1.txtで保存し、
またその下の文字列から次の空白の上までを2.txt・・・と、
名前を付けて保存したいのですが、どのようなコードを組んだら
よいかご教授ください。よろしくお願いします。
246:デフォルトの名無しさん
13/06/19 01:44:34.41
>>245
このようなコードです
Sub B_n_txt()
n = 1 ' ファイルの番号
r1 = 2 ' r1=始まりの行
While Cells(r1, 2) <> "" ' 最後ならプログラム終わり
If Cells(r1 + 1, 2) = "" Then ' 区切りを見つける
r2 = r1 ' r2=終わりの行
Else
r2 = Cells(r1, 2).End(xlDown).Row
End If
Open n & ".txt" For Output As #1 ' ファイルに書き込む
For i = r1 To r2
Print #1, Cells(i, 2)
Next
Close #1
n = n + 1 ' 次のファイル番号
r1 = r2 + 2 ' 次の先頭
Wend
End Sub
247:デフォルトの名無しさん
13/06/19 01:58:13.00
>>246
遅くに作成いただきましてありがとうございました!
早速試してみました。出来たーーー!
手動で大量に保存していたので、本当に助かります。
明日から・・・じゃない今日からの作業が楽しみです。
またの機会がありましたら何卒宜しくお願いいたします。
248:245
13/06/19 22:26:35.34
まだ一日経っていないのですが、お力いただけないでしょうか。
昨日と似たもので、エクセルで2007で。
<1>
M列に数字のデータが昇順に並んでいます。M2からがデータです。
そのM列で同じ数字の列までのB2からのデータをデスクトップに
1.txt、2.txt・・・と保存したいのですが。
たとえばM2~M4までの数字が同じなら、B2~B4までのデータを
デスクトップに順番に保存するというものです。
B列は半角数字とアルファベットでデスクトップはC:\Users\admin\Desktop\
です。
249:245
13/06/19 22:32:49.52
<2>
そして、>>248にもうひとつ条件を入れて作成が可能であれば・・・
M列と同じ数字の列数と同じB列のものを抜き出すのですが、
その時、Q列が全角のRなら1R.txtで保存、全角のLなら1L.txtなど、
同じM列の数字の中のものだとわかるような方法で保存したいのです。
(Q列は全角Rか全角Lのみとなっています)
たとえばM2~M4までが同じ数字だが、Q2とQ4がR、Q3がLなら
B2とB4のデータを1R.txt B3を1L.txtと保存し、
次のM5~は上記と同様2R.txt・・・・・と保存していくものが希望です。
何卒よろしくお願いいたします。
250:デフォルトの名無しさん
13/06/19 22:47:49.25
少し自分で努力しろ。
251:デフォルトの名無しさん
13/06/19 22:55:24.53
>>249
>何卒よろしくお願いいたします。
嫌です
252:245
13/06/19 23:05:47.80
努力してみたのですが習得に時間がかかるようで。
不愉快にさせてしまい申し訳ありません。
253:デフォルトの名無しさん
13/06/19 23:10:27.65
別に不愉快にはなっていない。
果報は寝て待て。
254:デフォルトの名無しさん
13/06/19 23:53:16.55
>>249
俺が作成料2万円でやってやる
仕様の変更や追加は条件一つに付き3000円
255:デフォルトの名無しさん
13/06/20 07:34:25.85
> 努力してみたのですが習得に時間がかかるようで。
最初から努力などしてないくせに
256:245
13/06/20 08:35:19.31
切り貼り奮闘し>>248はなんとか出来ました。
せっぱつまっていたのでお願いしてみましたが、
>>249は出来ませんでしたので
ちまちま手作業で乗り切ろうと思います。
スレ汚しして申し訳ございませんでした。
>>246さん、本当にありがとうございました。
257:デフォルトの名無しさん
13/06/20 11:37:32.35
>>256
雰囲気こんな感じ。
For i = 2 To maxRow
If Cells(i, 17).Value = "R" Then
rBuf = rBuf & Cells(i, 2).Value & vbCrLf
Else
lBuf = lBuf & Cells(i, 2).Value & vbCrLf
End If
Next
Open "1R.txt" For Output As #1
Print #1, rBuf
Close #1
Open "1L.txt" For Output As #1
Print #1, lBuf
Close #1
258:デフォルトの名無しさん
13/06/20 18:22:26.64
>>257
ありがとうございます。
何故か中身が空っぽで保存されていました。
自動保存から切り貼りしてなんとかやっているようなレベルなので
厳しいですが色々調べながら頑張ります。
本当にありがとう!
259:デフォルトの名無しさん
13/06/20 18:50:16.31
>>258
丁寧な言葉は使ってるけど、言いたいことは
>>257ご苦労さん、全く使えねぇコード書きやがって動かなきゃ意味ねえんだボケ!
ってところかw
260:桃白白 ◆9Jro6YFwm650
13/06/20 18:55:59.95
>>259
うるせえな、ちょっと黙ってろ。
261:デフォルトの名無しさん
13/06/20 19:41:13.25
>>259
ん?俺はお前にレスした覚えはないが。
何かスイッチ押しちゃったw
262:桃白白 ◆9Jro6YFwm650
13/06/20 19:44:49.91
>>249
でけーた。試してみて。
URLリンク(friendpaste.com)
263:デフォルトの名無しさん
13/06/20 20:02:44.42
更年期のオッサンってキレやすいんだな
264:デフォルトの名無しさん
13/06/20 21:21:07.67
>>262 桃白白さま。
ありがとうございます!凄いです!魔法使いみたい。
何時間もかかっていたややこしい仕事が一瞬で済むなんて。
作っていただいたコード見てもさっぱりわからない自分が情けないです。
基本から勉強すべきなんだなと痛感しました。
自分で努力しろと助言くださった方々、まさしくその通りです。
みなさんに感謝の気持ちでいっぱいです。ありがとうございました。
265:デフォルトの名無しさん
13/06/20 21:27:07.06
毎日痛みと戦ってるからな
266:デフォルトの名無しさん
13/06/20 21:43:16.94
>>264
>作っていただいたコード見てもさっぱりわからない自分が情けないです。
この時点でお前のために書いてないと気づけよw
267:デフォルトの名無しさん
13/06/21 23:13:03.66
生理痛?
268:デフォルトの名無しさん
13/06/22 00:31:32.15
桃白白
↑なんてよむにょ?
269:デフォルトの名無しさん
13/06/22 00:38:54.33
オッサンと読めば良いよ
270:デフォルトの名無しさん
13/06/22 01:37:03.71
ググレカス、というか、
ドラゴンボールはすでにオッサン世代しか知らんのか
271:デフォルトの名無しさん
13/06/22 15:07:38.48
ピーチダブルホワイト
272:デフォルトの名無しさん
13/07/03 NY:AN:NY.AN
>>262
先日はありがとうございました!
もうひとつ、質問させてください。
>>262で保存したものを開くと、
カーソルがデータの最初にある状態で保存されていました。
カーソルをファイルの末尾へ移動して保存する場合、
どういう構文をどこに足せばいいのでしょうか・・・
色々調べてみましたが自力では無理でした。
申し訳ありませんがよろしくお願いします。
273:デフォルトの名無しさん
13/07/03 NY:AN:NY.AN
>>272
カーソルをB列の最後のデータに移動
Cells(Rows.Count, 2).End(xlUp).Select
274:デフォルトの名無しさん
13/07/04 NY:AN:NY.AN
>>273
早速ありがとうございます。
何行目に足せばいいのでしょうか・・・
275:デフォルトの名無しさん
13/07/04 NY:AN:NY.AN
好きな所に足しなさい
276:デフォルトの名無しさん
13/07/04 NY:AN:NY.AN
カツカレーが好きなんですけど、この上に足していいですか?
277:デフォルトの名無しさん
13/07/04 NY:AN:NY.AN
抜き出したテキストファイルをプログラムで読み込もうとしたのですが、
読み込めず、開いて末尾にカーソル持っていって、
DELキー何度も連打して上書き保存したら、読み込めたんです。
ってことは、元のB列のデータになにかわからない空白がある?
空っぽの頭で考えたのですが、さっぱりわからなくって。
278:デフォルトの名無しさん
13/07/04 NY:AN:NY.AN
とりあえず出社してから再度悩んでみます。スレ汚しすみませんでした。
明日のランチはカツカレーに決定。おやすみなさい。
279:デフォルトの名無しさん
13/07/04 NY:AN:NY.AN
一体何人の分身がいるんだコイツ?
280:デフォルトの名無しさん
13/07/04 NY:AN:NY.AN
VBAの文法VB.netに統一されるといいのになぁ。
281:デフォルトの名無しさん
13/07/04 NY:AN:NY.AN
>>279
下衆の勘ぐり?
282:デフォルトの名無しさん
13/07/04 NY:AN:NY.AN
>>272 です。
不慣れで何をどう説明したらいいのかすらわからず、
グダグダになってすみません。
>>262で桃白白さまに作っていただいたVBAの最後の部分、
Sub SaveLR_(filename, value)
Dim n As Long
n = FreeFile
Open filename For Output As #n
Print #n, value
Close n
End Sub
データを抽出し、ここでテキストに貼るように作っていただきましたが、
最後の改行だけを無くして保存する方法をお教えください。
よろしくお願いいたします。
283:デフォルトの名無しさん
13/07/04 NY:AN:NY.AN
>>282
パイパイのコードは知らんが Print # で改行無しなら
Print #n, value;
284:デフォルトの名無しさん
13/07/04 NY:AN:NY.AN
>>283
試したところ、空白が無くなって、いけそうです!
明日会社で試してみます。
今から戻って試したい位です。ありがとうございます。
285: 忍法帖【Lv=2,xxxP】(-1+0:5)
13/07/12 NY:AN:NY.AN
すみません!教えてください、僕の頭ではサパーリです。
マクロを実行するとDROPBOXの複数のフォルダに保存するマクロを作ったのですが
ユーザー名が1つ1つのパソコンで異なり他のPCでこのマクロを実行するとエラーがでます(当たり前ですが・・・)
マクロでユーザー名を取得することは可能でしょうか?
286:デフォルトの名無しさん
13/07/12 NY:AN:NY.AN
>>285
URLリンク(www.ken3.org)
287:285
13/07/16 NY:AN:NY.AN
>>286
情報㌧です。これではC:\Users\に入り込めませんでした。
他に何か方法はないでしょうか?
288:デフォルトの名無しさん
13/07/16 NY:AN:NY.AN
>>287
Dim WshShell As Object
Set WshShell = CreateObject("WScript.Shell")
Debug.Print WshShell.SpecialFolders("MyDocuments")
289:デフォルトの名無しさん
13/07/16 NY:AN:NY.AN
>>288
レスありがとうございます。
Dropboxがマイドキュメントフォルダに入っていません。
rootは、C:\Users\ユーザー名\Dropboxになってます。
この場合でも、SpecialFoldersで指定は可能でしょうか?
290:デフォルトの名無しさん
13/07/16 NY:AN:NY.AN
>>289
フォルダを検索して、存在しなければフォルダを作るようなコード書けばいいんじゃね?
291:デフォルトの名無しさん
13/07/16 NY:AN:NY.AN
>>290
Dropbox自体が特殊で場所移動とかできないんですよねー。
なんか無理そうだな orz
292:デフォルトの名無しさん
13/07/16 NY:AN:NY.AN
>>291
Dropbox限定か。
なら、URLリンク(hardsoft.at.webry.info) をVBAに書き換えろ。
「dropbox フォルダ 場所 取得」でググったら一番上だ。検索時間1分。
293:デフォルトの名無しさん
13/07/16 NY:AN:NY.AN
ちなみに、dropboxはドキュメントフォルダの場所を変更できるからな。
294:デフォルトの名無しさん
13/07/16 NY:AN:NY.AN
>>292
>********をVBAに書き換えろ。
WScript.Shellも理解できない人にそんなこと言ったって・・・・・・・・・w
295:デフォルトの名無しさん
13/07/16 NY:AN:NY.AN
>>294
ほら、全コード書いちゃうと荒れるじゃん
296:デフォルトの名無しさん
13/07/16 NY:AN:NY.AN
>>295
URLリンク(hardsoft.at.webry.info)
を見て何とかなるスキルがあるなら >>289のような質問自体が生じないってこと。
>>288 に対して >>289の再質問を見ると
SpecialFolders("MyDocuments")が何を返すのかを調べもしていない
= 意味不明でもコピペするだけで動くコードがほしい ということでしょう。
[C:\Users\<ユーザー名>\Dropbox]決め打ちで良いのならこの文字列を取得
する方法は上記以外にもいくつもあるよね。
自分ならExpandEnvironmentStringsで%USERPROFILE%を取得とか
WScript.Network UserName で<ユーザー名>を取得することを検討するな。
297:デフォルトの名無しさん
13/07/16 NY:AN:NY.AN
>>296
Dropboxのパス取得が目的なら、それでは不十分。
298:デフォルトの名無しさん
13/07/16 NY:AN:NY.AN
>>291
> Dropbox自体が特殊で場所移動とかできないんですよねー。
これはいくら何でもひどい
299:296
13/07/16 NY:AN:NY.AN
>>297
でしょうね
自分がDropboxを使っていないのとUPするとき長くなるので以下の文章を抜いちゃったんだ
「Dropboxは使っていないので無責任になるが上記URLにDropboxの場所がデフォルトの場合
C:\Users\<ユーザー名>\Dropboxになる。また >>293 ・・・場所を変更できるからな。
とあるので対象PCはすべてデフォルトということを元>>285は検証しているのだろうか。
>>291 Dropbox自体が特殊で場所移動とかできないんですよねー。
とあるが 特殊なDropboxなのだろうか?それとも移動可能ということを知らないだけなのだろうか?」
もしユーザーが簡単にC:\Users\<ユーザー名>\Dropboxの場所を変更できるのならだれか
元>>285に引導を渡してやってくれ。
300:デフォルトの名無しさん
13/07/16 NY:AN:NY.AN
>>299
よくある普通の設定ダイアログで、普通に変えられるよ。
301:デフォルトの名無しさん
13/07/17 NY:AN:NY.AN
WSH.SpecialFolders("Desktop") の結果から"デスクトップ"と"Dropbox"をReplaceして一旦パスを整えて
FileSystemObjectのFolderExistsでフォルダがあるかチェックして
フォルダが無ければ終了するかフォルダピッカー出して選択してもらう
302:デフォルトの名無しさん
13/07/17 NY:AN:NY.AN
そんなにPerlが読めない人たちにばかりなの?
Dropboxフォルダが書かれてるファイルがあるから、オープンして内容読んでデコードするだけじゃん。
303:デフォルトの名無しさん
13/07/17 NY:AN:NY.AN
>>302
どこのどれ?
304:デフォルトの名無しさん
13/07/17 NY:AN:NY.AN
Dropboxの仕様とか明らかにスレ違いなんでどっか適切なとこ探して移動して下さい
305:デフォルトの名無しさん
13/07/17 NY:AN:NY.AN
>>303
>>292のリンク先に正解のPerlコードがある
306:285
13/07/17 NY:AN:NY.AN
>>292
パールをVBAへ変換できるPG探してみます。
>>293
本当ですね orz 場所移動できました。すみません。
>>294
頑張ります!>>296
>>296
自分ならExpandEnvironmentStringsで%USERPROFILE%を取得とか
WScript.Network UserName で<ユーザー名>を取得することを検討するな。
ここらへんググってみます。
>>298
バカですみません。
>>300
助かりました!
307:デフォルトの名無しさん
13/07/17 NY:AN:NY.AN
Function GetDropboxPath() As String
Dim path As String
Dim wsh As Variant
Set wsh = CreateObject("Wscript.Shell")
path = wsh.SpecialFolders("AppData") & "\DropBox\host.db"
Dim fn As Long
Dim buf As String
fn = FreeFile
Open path For Input As #fn
Do Until EOF(fn)
Line Input #fn, buf
Loop
Close #fn
Dim ary As Variant
ary = Split(buf, vbLf)
GetDropboxPath = StrConv(decodeBase64(ary(1)), vbUnicode)
End Sub
decodeBase64は、ここのコードをコピペで。
URLリンク(www.gizcollabo.jp)
308:デフォルトの名無しさん
13/07/17 NY:AN:NY.AN
>>307
添削。
Function GetDropboxPath() As String
Dim path As String
Dim wsh As Variant
Set wsh = CreateObject("Wscript.Shell")
path = wsh.SpecialFolders("AppData") & "\DropBox\host.db"
If Dir(path) = "" Then Exit Function
Dim fn As Long
Dim buf As String
fn = FreeFile
Open path For Input As #fn
Line Input #fn, buf
Close #fn
Dim ary As Variant
ary = Split(buf, vbLf)
GetDropboxPath = StrConv(decodeBase64(ary(1)), vbUnicode)
End Function
309:デフォルトの名無しさん
13/07/17 NY:AN:NY.AN
バールのようなもの
310:デフォルトの名無しさん
13/07/17 NY:AN:NY.AN
そのファイルの改行コードがどうなってるのかしらんが
Line Input ってLFのみだと改行コードだとみなさないんだっけ?
311:デフォルトの名無しさん
13/07/17 NY:AN:NY.AN
>>310
「そのファイル」はLFで改行された二行固定(すくなくとも今現在は)。
Line InputはLFを認識しない。
312:285
13/07/17 NY:AN:NY.AN
>>308
大変助かりました。ありがとうございました。
仕組みがまったく理解できませんが、理解できるように勉強したいと思います。
313:デフォルトの名無しさん
13/07/17 NY:AN:NY.AN
あー、これ見ても理解できないんだったら、そもそも書けるわけ無かったね。
別に貶めてるとかそういうことじゃないんだけど。
314:デフォルトの名無しさん
13/07/17 NY:AN:NY.AN
>>313
うぜーやつ
315:デフォルトの名無しさん
13/07/18 NY:AN:NY.AN
いっそのことコード作成依頼OK、丸投げ歓迎ってテンプレ入れて、このスレをそんなスレに
するってのはどう?
本スレでも、コード書きたくてウズウズしてる人いるみたいだし。
それとも、そんな性質のスレほかにもうある?
316:285
13/07/18 NY:AN:NY.AN
何度もすみませんヒントだけでもいいので教えて下さい。
>>308さんのVBAをcallで読みだしてCommandで保存できるようにしました。
この時saveを使えば開いてる場所に保存されるのですが、saveasメソッドを使用して指定するとアクセスできませんエラーがでてしまいます。
助けてください orz
317:デフォルトの名無しさん
13/07/18 NY:AN:NY.AN
>>316
エラーになるというコードを晒せ。
318:デフォルトの名無しさん
13/07/18 NY:AN:NY.AN
>>315
>>1にはコード作成依頼はダメとか、丸投げダメとは一切書いていない。
「VBAを使った質問ならなんでもござれ」なんだから何でもいいんじゃないの?
319:デフォルトの名無しさん
13/07/18 NY:AN:NY.AN
>>318
にほんご むずかしい です よくわからない
「作成依頼」と「質問」はおなじことなんでしょうか
320:ピラフ
13/07/18 NY:AN:NY.AN
>>319
たとえば、相談に乗って欲しいと男を家に誘い込み、
省エネのためといって電気を消し、じつは・・・むぎゅと
いう行動に出た場合、相談とせっくすは完全に同じことであると
いうことになると思いますので、作成依頼は質問であるということで
いいのではないでしょうか。
321:285
13/07/18 NY:AN:NY.AN
こんな感じです!バカですみません!!
>>317
Sub CommandButton()
Call GetDropboxPath >>308さんのこれでドロップボックスの保存先呼び出すと解釈しました
'ActiveWorkbook.SaveAs これなら何故か上手くいく。
ActiveWorkbook.SaveAs "\新しいフォルダ\練習.xlsm" ←なので直下のこれを指定したのですが・・・
End Sub
322:デフォルトの名無しさん
13/07/18 NY:AN:NY.AN
>>321
Functionは値を返す関数で、変数に代入したり式の中で使ったりする。
Call myFunction()
だと、戻った値が後で使えない。
Sub CommandButton()
ActiveWorkbook.SaveAs GetDropboxPath() & "\練習.xlsm"
End Sub
とやれば、保存できる。
ファイル保存ダイアログを出したかったり、存在しないフォルダを新規作成してその中に保存したい場合とかは、
さらに別のコードが必要。
これからも、VBAで何かを作っていこうと思うのなら、何かVBAの入門書を読んだ方がいいよ。
323:285
13/07/18 NY:AN:NY.AN
>>322
レスありがとうございます。
参考に弄ってみます。
何かおすすめの書籍などありましたら教えて頂けませせんか?
質問ばかりですみません。
324:デフォルトの名無しさん
13/07/18 NY:AN:NY.AN
大きな本屋に行って何冊か自分で立ち読みして調べるぐらいのことはしてよ
325:デフォルトの名無しさん
13/08/28 NY:AN:NY.AN
Outlookのvbaに関する質問大丈夫ですか?
326:デフォルトの名無しさん
13/08/28 NY:AN:NY.AN
OUTです
327:デフォルトの名無しさん
13/08/28 NY:AN:NY.AN
何処でしたらいいですか?
328:デフォルトの名無しさん
13/08/28 NY:AN:NY.AN
適したスレで
329:デフォルトの名無しさん
13/08/28 NY:AN:NY.AN
テキストファイルを指定して直接開きたいのですがどうしたらいいでしょうか?
shell関数はexeのみですよね?
330:デフォルトの名無しさん
13/08/28 NY:AN:NY.AN
>>329
With CreateObject("Wscript.Shell")
.Run "C:\hoge.txt", 5
End With
331:デフォルトの名無しさん
13/08/29 NY:AN:NY.AN
まさかOUTLOOKだけにOUTだす、っていうダジャレですか
このクソオヤジがぁ?
332:デフォルトの名無しさん
13/09/02 21:53:12.79
ごちゃごちゃ言わずにその疑問を書けばいい。だれか判る人間が答えるだろ(俺は知らんw
333:デフォルトの名無しさん
13/09/05 18:05:27.91
エクセルとアクセスのVBAをマニュアルページとか見ながらだけど
理解できてて、アクセスからデータを引っ張ってきて、エクセルに貼り付けて
そこで表計算させたり、条件にまとめて貼り付けたりとかできるんだけど。
それでこういうのを仕事にできるアルバイトしたいとおもって探してて
ネット上では、1500円とか結構高い時給でそれっぽいのの応募があったりするんだけど
そういうバイトしたことある人っています?実際どれぐらいのスキルを
求められるんだろう?
334:デフォルトの名無しさん
13/09/05 18:32:58.66
>>333
電話して聞けば?
335:デフォルトの名無しさん
13/09/05 18:53:07.43
>>334
ざっと探すとネットでのみ応募で電話番号がわからないところしか
見つからないんですよね。ネットで中核求人サイトを媒介にして応募して
応募した会社からの連絡待ちみたいな。
336:デフォルトの名無しさん
13/09/06 13:02:30.82
>>335
そのスキルじゃ、20代女子じゃないと難しいかと。
337:デフォルトの名無しさん
13/09/06 13:45:37.41
>>336
ああ、やったことあるんすか?20代女子かぁ。うーむ。男女差別って気がして
しまうなぁ。
338:デフォルトの名無しさん
13/09/06 18:00:08.99
>>337
いや、無いけど>>333読む限りVBAをがっつりやるにはスキル足りなさすぎ。
339:デフォルトの名無しさん
13/09/06 18:03:28.00
>>338
なるほど、もっとスキルがあれば、できるかもですな。
実際に働いたことある人の意見がききたいですが。
なかなかそういう人もいないもんなんでしょうかねぇ。
340:デフォルトの名無しさん
13/09/06 18:04:18.03
やればなんとかなるさ
341:デフォルトの名無しさん
13/09/07 11:49:00.50
エクセルのみ使ったデータ入力の仕事ならあるだろうけど、時給1500円は無いだろう
アクセスを使う仕事はデータ入力のみか、DBの設計開発かで必要なスキルが段違いになるが、333には無理だろう
業務で使うVBA開発を前提とした仕事なら、初心者に毛が生えた程度の333では相手にされないだろう
342:デフォルトの名無しさん
13/09/07 12:03:23.48
>>341
>アクセスを使う仕事はデータ入力のみか、DBの設計開発か
DBの設計開発って具体的にいうと、アクセスでテーブルを作って
用途に応じたクエリを作成する。ぐらいまでのことですか?
例えば、都道府県の各市町村で、「田」のつく名称を都道府県ごとに検出して
さらに「田」のつく市町村名の割合などを算出する。
これらをSqlとVBAを併用してエクセルに記述できたら、設計開発っていえます?
>業務で使うVBA開発
必要な用途に応じて、エクセルの中にフォームを作ったりボタンを作ってそのフォームや
ボタンを押すと必要な動作が行われる、ぐらいまでのことが注文されると作れると
VBA開発って感じになります?
343:デフォルトの名無しさん
13/09/07 12:13:27.25
そういう程度では即戦力として雇って貰える所は無いだろな
344:デフォルトの名無しさん
13/09/07 12:18:40.43
なるほどねぇ。これ以上だと具体的にどういうレベルなのか。
求人はあるみたいだけど、実際に働いた人の話も聞かないしなぁ。
まぁ、バイトならいつでも辞めれるし、辞めさせられるし、飛び込むだけ
飛び込んでみるのもいいかもですが。
345:デフォルトの名無しさん
13/09/07 14:25:37.30
今の職場でエクセルのマクロとテキストエディタ(正規表現込み)を独学で覚えて
作業効率を大幅に向上させてきたけど時給900円のままのワープア派遣Orz
346:デフォルトの名無しさん
13/09/07 15:23:13.20
>>344
会社側が求めている人材なんてその会社毎に違うんだから
その会社に問い合わせないとわかんないな
あーだこーだ言ってないで成果物を見せればちゃんと判断してくれるよ
347:デフォルトの名無しさん
13/09/07 15:26:56.43
>>345 時給制なのになんでそんなことするんだよwあほwww
348:デフォルトの名無しさん
13/09/07 21:42:21.69
Excel VBA 質問スレから誘導されて来ました。
苦戦しているので、どうかお願い致します。
スペックはXPでExcelは2003です。
現在B1セルに○月1日と日付を入れ、シート名を1日としたものがあります。
これを自動で複製して、B1セル日付を○月2日 ○月3日…
シート名を2日 3日…となるように、一ヶ月分のbookを作りたいと思っています。
また、その際に、B1セルとシート名の日付が日曜・祭日に当たる場合、
シート名に色を付けたいのですが、肝心のコードが全く分かりません。
(因みにB1セルの日付はシリアル値で入れていて、
書式で○月○日と表示していて、日付が日曜・祭日に当たる場合は
赤文字になるよう、別シートに祝日リストも作って
条件付き書式で設定してあります。)
一応ウェブを漁って、それらしいコードを拾って動かしてはみたのですが
いまひとつ、作りたいものがうまく作れないので
こちらで教えていただけないでしょうか。
どうかよろしくお願いいたします。
349:デフォルトの名無しさん
13/09/07 21:54:30.33
shrs
350:デフォルトの名無しさん
13/09/07 22:02:50.45
>>342
「テーブルを作って」を軽く見てるように思えるけど。そこがデータベースの設計の一番重要な所じゃね?
>>業務で使うVBA開発
たとえば、事務所の女の子が勝手にそれらのフォーム作ってちょっと便利なことしてたら、すげーそんなこと
できるんだ!って褒められてちょっと大事に扱ってくれるんじゃね?ってレベルのスキルだと思うよ。
351:デフォルトの名無しさん
13/09/07 22:04:16.62
>>348
お前が何がわからないのかわからない
(プログラムで)しなければいけない事を細かく分けて考えて
何がわからないのか特定して、そのわからない事を書け
352:デフォルトの名無しさん
13/09/07 22:23:24.01
>>342
素人がどんなに上手く料理を作れてもプロの料理人にはなれないのと一緒、やってる仕事の性質が違う
353:デフォルトの名無しさん
13/09/07 22:36:49.54
>>351
レスありがとうございます。
>お前が何がわからないのかわからない
仕事で関数を使ったExcelシートを作る程度で
マクロやVBAなどの知識が全くないので
VBAそのものが全く分かりません。
なのでそれらしいコードをwebで拾ってきて使ってみたのですが
思っているものが作れなくて苦戦しています。
354:デフォルトの名無しさん
13/09/07 22:37:21.57
なんでお前ら若い芽を摘むのにそんなに必死なの?
355:デフォルトの名無しさん
13/09/07 22:42:08.80
>>348
B1をシリアル値で持っていると言うことは年の情報も持っていると言うことだよね?
なら、その月の1日から、翌月の1日から1日引いた日数分だけ
シートをコピーしてB1の値だけインクリメントしていく。
あとはB1セルの内容をフォーマットで変えてやって、シート名として設定して、
対象シートのB1セルと休日シートを照らし合わせて休日なら
シートを赤くすれば良いだけだと思うんだけど、ここまではいい?
356:デフォルトの名無しさん
13/09/07 22:50:05.56
いじわる多いのぅww
>>348
基礎を学んでないならコードの流用は不可能。
今現在の目的を果たすだけが目的なら丸投げして作ってもらう方がいいわな。
勉強が目的なら、いったん今の目的はあきらめて基礎から勉強したほうがいい。
357:デフォルトの名無しさん
13/09/07 23:00:37.83
>>348
Excel VBA の話題なのになんでここに誘導されて来るんだよw
マクロの記録でシートを複製して出力されるコードに手を加えてみたら?
それが無理なら丸投げするしか無理だと思う
今のブックをどっかにアップしてみたら暇な誰かが作って再アップしてくれると思うよ
358:デフォルトの名無しさん
13/09/07 23:06:49.36
みんなVBA程度に大袈裟だなぁ
359:デフォルトの名無しさん
13/09/07 23:09:33.19
>>355
すみません、分かりません…
>>356
はい、基礎を全く学んでいないので
webに落ちているコードを拾ってきて
貼り付ける程度の事しか出来ません…
なので丸投げで作って頂けたらとても助かるのですが
やはりここでは無理でしょうか…
今現在、作りたいbookが出来上がればそれで十分なのですが。
どうかよろしくお願いします。
360:桃白白
13/09/07 23:15:42.15
>>359
ちょっとまってて。桃白白いまがんばってるから。
361:デフォルトの名無しさん
13/09/07 23:17:52.45
>>357
あっちはこの手の質問投下すると例外無く荒れるw
362:デフォルトの名無しさん
13/09/07 23:30:13.52
>>348
問題点1:シート名「1日」の複製 ->マクロの記録でコードが取得出来ます。
問題点2:変更するシート名を2日 3日にするには、DAYを使い、日付の数値だけ抽出します。
(マクロでC1セルに =DAY(B1) を登録して、そのコードを見てください。)
抽出した日付に1足して、文字列変換し、”日”を結合します。その後シート名の変更をします。
問題点3:シート名の変更方法 -> マクロの記録で・・。
問題点4:シート名の日付が日曜・祭日かの判定は出来ていて、「赤文字」にしてる様なので、
そのセルの色で if分を使って赤文字かどうかの判定を行い、赤文字ならシートの色を変更します。
(色の数値は、Cells(セル番地).Font.Color で調べられます。)
問題点5:シート名に色を付けたい -> マクロの記録で・・
問題点6:質問者の疑問には無いが、うるう年の処理(2月が何日までか)。
計算でも出来ますが、現レベルでは別シートに1~12月の日数表を作成した方が良いかと思います。
参考URL:URLリンク(www.liveway.net) の「lastDay」変数が最終日
参考 EXCELで、ある日は祝日(祝日、国民の休日、振替休日等)かを取得する関数
URL:URLリンク(www.excelio.biz)
「マクロの記録」が判らないようでしたら、ネットで検索してください。
.
VBAの構文等は URLリンク(excelvba.pc-users.net) の様なサイトが沢山あります、それらを参考にして下さい
.
そして、どこが判らないのか、どこが思った通りにならないのかを、明確に質問してもらうと的確な解答が得られます。
。
>>357
Excel VBAスレには、嵐がいて、枝の話も幹で質問しろと嘘の誘導をしているので、>>348はある意味では被害者。
363:デフォルトの名無しさん
13/09/07 23:35:26.76
うわあ
・・・うわあ
364:デフォルトの名無しさん
13/09/07 23:48:21.27
とりあえず、シートコピーするとこまで作ってやった
Sub シートコピー()
Dim dt As Date
Dim lastday As Integer
Dim i As Integer
Dim sh As Worksheet
dt = Sheets("1日").Range("B1").Value
lastday = Day(DateAdd("M", 1, dt) - 1)
For i = 2 To lastday
Set sh = Worksheets.Add(, Worksheets(i - 1))
sh.Name = CStr(i) & "日"
sh.Range("B1").Value = dt + i - 1
sh.Range("B1").NumberFormatLocal = "m月d日"
'シート見出しの色変える処理
Next
End Sub
色変えるのは、休日定義してるシートの詳細だせ
内容を理解するまで次の質問は禁止な
365:桃白白
13/09/07 23:52:21.26
>>359
動きますかしら。
URLリンク(friendpaste.com)
休日判定はシートを参照したほうがいいのだけれども、どのセルに入ってるのかわからないので
とりあえずやっつけで。祝日リストのシート名と範囲と書式を教えてもらえる?