[過去ログ] VBAなんでも質問スレ Part2 [転載禁止]©2ch.net (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
271: 2017/02/23(木)16:14 ID:5OVH7aZj(2/2) AAS
>>269
> If TypeName(Selection) <> "Range" Then Exit Sub
だよ
272
(1): 2017/02/26(日)14:44 ID:nMuhJunv(1/3) AAS
エクセルのマクロでも質問大丈夫でしょうか?
名前と同じファイル名の画像を名前セルの隣に貼り付けるプログラムなんですが
Sub ボタン1_Click()
Const n As Long = 2
Dim i As Long
Dim x As Double
Dim s As String
Dim t As FileDialog
Dim m As VbMsgBoxResult
With ActiveSheet
For i = 2 To .Cells(.Rows.Count, 2).End(xlUp).Row Step 6
Set r = .Cells(i, 3).MergeArea
s = "D:\画像\1\" & .Cells(i, 2).Value & ".jpg"
Dir Application.Path
With .Pictures.Insert(s).ShapeRange
.LockAspectRatio = msoTrue
x = Application.Min(r.Width / .Width, (r.Height - n) / .Height)
.Width = .Width * x
.Left = r.Left + (r.Width - .Width) / 2
.Top = r.Top + (r.Height - .Height) / 2
End With
Next
End With
End Sub
この"D:\画像\1\"の部分をフォルダ選択できるようにしたいので
Dim s As String
  Dim t As FileDialog
Set t = Application.FileDialog(msoFileDialogFolderPicker)
s = "t" & .Cells(i, 2).Value & ".jpg"
としたら「1004 PicturesクラスのInsertプロパティを取得できません。」と実行できません
どうしたら"D:\画像\1\"の部分をフォルダ選択できるようにできるのでしょうか?ご教示お願い致します。
273
(1): 2017/02/26(日)16:00 ID:nt1S72uw(1/2) AAS
>>272
Dim s As String
Dim t As String
With Application.FileDialog(msoFileDialogFolderPicker)
  If .Show = False Then Exit Sub
  t = .SelectedItems(1) & "\"
End With
'途中省略
s = t & .Cells(i, 2).Value & ".jpg"

じゃないかな?
あと
元コードもそうだけど
フォルダ内に その画像ファイルが存在してなかった時の対策も必要だと思うよ
同じエラーになるぞ それとも絶対 あるのが 確定してる?
274
(1): 2017/02/26(日)16:45 ID:nMuhJunv(2/3) AAS
>>273
大変ありがとうございます!
ただ、貼り付ける画像は複数あり、貼り付けるたびにフォルダ選択画面が出てしまいますので、一気に貼り付けられないものでしょうか?
ファイルが存在してない時の対策は、セルの状態を色変えて罫線で斜線を挿入したいと考えてますが、まだそこまで進む前段階がクリアできないので困ってます
よろしくお願いします
275
(1): 2017/02/26(日)16:51 ID:nt1S72uw(2/2) AAS
>>274
ん? そこは分ってるとおもたよ
フォルダ選択部分は Forループの外だよ
↓ここねw
With Application.FileDialog(msoFileDialogFolderPicker)
 If .Show = False Then Exit Sub
 t = .SelectedItems(1) & "\"
End With
276: 2017/02/26(日)16:57 ID:nMuhJunv(3/3) AAS
>>275
あっ!できました!ありがとうございます!助かりました!
277: 2017/03/06(月)23:29 ID:QCgyLcj6(1) AAS
こんにちは。

パワーポイント2013のVBAについて分かる方教えて下さい。

やりたいことは、グラデーションの塗りつぶしがあるシェイプのGradientStopsのそれぞれの色を変化させるアニメーションの方法です。

2013ではできないけど2016ではできる等の情報もあればお願い致します。
278: 2017/03/08(水)21:50 ID:DO0ivfK5(1) AAS
vbaだけでhttpサーバーって出来る?
279: 2017/03/08(水)23:04 ID:Tpob7EG8(1) AAS
俺が手を下すまでもないな
答えてやれよ
>>280
280
(1): 2017/03/09(木)01:39 ID:UFk6xx1O(1) AAS
VBAだけってのが
外部コントロール使用禁止
API呼び出し禁止
なら不可能です
281
(2): 2017/04/09(日)15:56 ID:9WwYB+FH(1/5) AAS
VBAの変数の値を次回の処理を行う時まで記録しておくのにセルに書き込みをしたりしていますが、

セルにアクセスするのを減らすためにセルに記録しなくて処理終了時に変数値をVBA内で保存しておいてくれる一次記憶領域みたいな物はないのでしょうか?
282: 2017/04/09(日)16:02 ID:9WwYB+FH(2/5) AAS
ちりも積もればの話ですが
足し算引き算割り算レベルの計算をセルに関数を割り当てて行うのと
同じ計算式を変数を用いてVBAで書いて実行するのとで、より処理速度が速いのはどちらでしょうか?
283
(1): 2017/04/09(日)16:09 ID:Lq/WJuQk(1) AAS
>>281
セルでいいんじゃないの?
ただそのIOは配列アクセスを使うべき
ループで1セルづつ読み込むとかがナンセンス
284
(2): 2017/04/09(日)16:14 ID:K8MFArI9(1/2) AAS
>>281
説明がいまいち分かりにくい。
次回ってのは何時のことを言ってる?
グローバルな変数じゃダメなの?
次にそのブックを開くまで保持したいならセルってのも分かるんだが。
で、その場合にセルの代わりに保持したいならCustomDocumetProperties使ったりするかな。
285: 2017/04/09(日)16:27 ID:9WwYB+FH(3/5) AAS
>>283
ありがとうございます。
>配列アクセス
勉強してみます。

>>284
Bookを閉じずに他からデーターを取り込み再度VBA実行を繰り返します。
>グローバル変数
>CustomDocumetProperties
勉強してみます。

グローバル変数に代入した数値は処理を中断しても生き続けるのであればそれで解決しそうです。
286: 2017/04/09(日)16:44 ID:9WwYB+FH(4/5) AAS
>>284
プロシージャの上に定義すると処理が終了しても最終定義された内容は残ったままなんですね!
今まで処理を中断する必要がある場合は変数をすべてセルに書き出していましたが大発見です。ありがとうございました。
287
(3): 2017/04/09(日)19:39 ID:9WwYB+FH(5/5) AAS
Public変数もしくは通常の変数の指定数の限界はあるのでしょうか?
問題なく動くレベルは何個ぐらいでしょうか?

50個
100個
1000個
10000個でも平気だっり?
実は
100000個以上でも問題ないとか?
288: 2017/04/09(日)19:51 ID:0T9WQSVM(1) AAS
>>287
使えるメモリは決まってる
変数の個数じゃなくてそれぞれのバイト数の合計
289: 2017/04/09(日)23:55 ID:K8MFArI9(2/2) AAS
>>287
グローバル変数(Public)は便利に見えるけどスコープを考えて必要無い所では使わない方が良い。
PublicかPrivateかプロシージャ内で宣言するかを意識して使った方が良いね。
290: 2017/04/10(月)02:47 ID:AhmZ51rM(1) AAS
日曜の午後からずっとVBAを書いてるけどまだおわらね〜
てかやればやるほど選択肢が爆発的に増えてきて一生かかってもおわりそうにね〜!w
291
(1): 2017/04/10(月)04:05 ID:sRLMXvmn(1) AAS
>>287
しかもEndやErrorで抜けたら破棄されるという罠
292
(1): 2017/04/11(火)00:40 ID:egN7ZnVO(1) AAS
素数や組み合わせ爆発のような数学の迷宮的な問題に陥って
一生かかってもコードを完成させるのは無理ですよみたいな場合もあるのでしょうか?
293: 2017/04/11(火)10:41 ID:Ei1BFwyD(1) AAS
>>292
数学的バックグラウンドがなければコードが書けないという類いの問題はあるね。
たとえばNP困難なやつ。
巡回セールスマンとかナップサック問題とか、ナーススケジューリング問題とか。
自力でなければ、それなりの回答が得られる解法(コード)が既に存在してるものもある。
294: 2017/04/11(火)11:01 ID:o/k96Ri6(1) AAS
問題を解く方法を考案するのと、その方法をコンピューター言語に翻訳する作業は別ですわ
それぞれに異なった知識と才能が必要となりますので
295: 2017/04/11(火)11:03 ID:6dnWkPrh(1) AAS
>>291
End Subの行にブレークポイント、これ
296: 2017/04/12(水)22:41 ID:iuenojzm(1) AAS
パブリック変数で

1000個
10000個でも平気だっり?

とかどんな拷問なんだよw
297: 2017/04/20(木)23:26 ID:92wBssf5(1) AAS
テストしてみたがパブリック変数500個は問題なく動いた。
もっと使ってる人いる?
298: 2017/04/21(金)19:40 ID:TpPjDerb(1/2) AAS
いらない
299
(3): 2017/04/21(金)21:22 ID:BWuBR5xw(1/2) AAS
変数の一部を変数にする事は出来ないのでしょうか?(代入
とかではなく)
たとえば↓はイメージですが変数名の箇所を文字列をつなぎ合わせる時と
同じように変数をわりあてられないのでしょうか?(以下は動きませんがphpではこれができます。)
dim aaa1
dim aaa
dim no
dim bbb

aaa1=例文1
aaa=aaa
no=1

aaa & no = bbb

msgbox bbb

結果は「例文1」 と表示されますみたな、、 
300
(3): 2017/04/21(金)21:28 ID:BWuBR5xw(2/2) AAS
>>299
最終的には
aaa1=「例文1」
aaa2=「例文2」
aaa3=「例文3」


とし
aaa & no のno番号だけ差し替えて制御するみないな感じで使います。
ただしnoの番号は連続した数字ではなく他の集計結果からランダムに発生するため
ループ処理等では成り立たず変数のように扱う必要があります。
1-
あと 702 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ

ぬこの手 ぬこTOP 0.012s