[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 12/08 10:06 / Filesize : 292 KB / Number-of Response : 1011
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Excel VBA 質問スレ Part65



1 名前:デフォルトの名無しさん mailto:sage [2020/03/17(火) 16:27:20.88 ID:hh8LiIgR0.net]

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

※前スレ
Excel VBA 質問スレ Part64
https://mevius.5ch.net/test/read.cgi/tech/1575297834/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured

2 名前:デフォルトの名無しさん mailto:sage [2020/03/17(火) 18:15:02.25 ID:xIJjSw0m0.net]
>>1

3 名前:デフォルトの名無しさん mailto:sage [2020/03/17(火) 19:24:51.48 ID:+T54gcvp0.net]
>>1

>全スレ998
挿入か貼り付けかはっきりしてくれ

4 名前:デフォルトの名無しさん (ワッチョイ 2eef-drwQ) mailto:sage [2020/03/17(火) 21:26:48 ID:xIJjSw0m0.net]
行をコピーして挿入操作
マクロ記録したら、Selection.Copy Selection.iIsert Shift:=xlDown が出てきたけど普通に再生できたぞ

5 名前:デフォルトの名無しさん mailto:sage [2020/03/18(水) 04:12:39.20 ID:oTsktMrB0.net]
VBAからインターネットエクスプローラーを起動して、
指定したURLのサイトを表示して、
スクリーンショットを取って行く。
という作業を自動化したくて色んなサイトのコードをコピペして、
一応動くものは出来たのですが画質が悪いです。
下記はそのコードの一部分なんですが、どこをどういじれば
画質が良くなるのでしょうか。

Private Declare PtrSafe Sub keybd_event Lib "user32" ( _
 ByVal bVk As Byte, _
 ByVal bScan As Byte, _
 ByVal dwFlags As Long, _
 ByVal dwExtraInfo As Long)

・・・

 keybd_event &HA4, 0&, &H1, 0&
 keybd_event vbKeySnapshot, 0&, &H1, 0&
 keybd_event vbKeySnapshot, 0&, &H1 Or &H2, 0&
 keybd_event &HA4, 0&, &H1 Or &H2, 0&

6 名前:5 (ワッチョイ 4901-hdmr) mailto:sage [2020/03/18(水) 05:01:35 ID:oTsktMrB0.net]
プラウザのウィンドウサイズを大きくした後で画面キャプチャしたら
満足の行く画質になりました。
>>5の質問は撤回します。

7 名前:デフォルトの名無しさん mailto:sage [2020/03/18(水) 12:15:49.12 ID:w6Ggs+SYM.net]
>>4
まじすか
コピー元が別ブックだったのでそのせいかも

8 名前:デフォルトの名無しさん (スップ Sd73-bMu3) mailto:sage [2020/03/18(水) 12:50:26 ID:FL4Tmu/bd.net]
>>5
キーボードマクロ最悪

9 名前:デフォルトの名無しさん (ワッチョイ 13ad-NT4g) mailto:sage [2020/03/18(水) 21:13:19 ID:ILNBMFwG0.net]
リボンを自動的に非表示にする設定だととクイックアクセスに登録したものも含めてコマンドがすべて隠れてしまうんだけど
特定のコマンドのみ表示させておく方法はないかな?
マクロとして登録させて画像にマクロを登録しようとしたけど動かない。

10 名前:デフォルトの名無しさん (ワッチョイ 0bef-ED79) mailto:sage [2020/03/19(Thu) 06:45:24 ID:3WIKr7Ue0.net]
>>9
うちのExcel2016だと隠れないけど、それ以降だと違うのかな
リボンの下に表示offでもだめなら
フォーム作って、UserForm.ShowModal=False という手もあるよ



11 名前:デフォルトの名無しさん (ワッチョイ 13ad-0a0A) mailto:sage [2020/03/19(Thu) 23:50:18 ID:7Zzxd2N00.net]
>>10
>>9
UserForm.ShowModal=False はどういう方法?

12 名前:デフォルトの名無しさん mailto:sage [2020/03/20(金) 00:29:09.01 ID:cQ88e7Ay0.net]
>>11
自作フォームをカスタマイズメニューに見立てて自作のマクロなどを呼び出す

13 名前:デフォルトの名無しさん mailto:sage [2020/03/20(金) 08:35:07.45 ID:SwKaoqcN0.net]
>>12
マクロを呼び出すのは簡単なんだけど、各コマンド(既存の機能)をよびだすのかできない
たとえば描写とかペンとか消しゴム機能とか

14 名前:デフォルトの名無しさん (ワッチョイ 1342-AP1B) mailto:sage [2020/03/20(金) 08:58:05 ID:8tNMwiiZ0.net]
既存の機能が必要ならリボンを非表示にしなきゃ良いんじゃね

15 名前:デフォルトの名無しさん mailto:sage [2020/03/20(金) 11:45:56.36 ID:gOi7n73D0.net]
>>13
SendKeys "% 〜

16 名前:デフォルトの名無しさん mailto:sage [2020/03/20(金) 12:04:13.08 ID:kTqu2sOZ0.net]
>>15
ショートカットキーを設定してってことかな?

17 名前:デフォルトの名無しさん mailto:sage [2020/03/20(金) 12:36:23.76 ID:dFakeV1fa.net]
csvを読む場合で、見出し行とデータ行が文字と数値で形式が違う場合とかどう処理しますか?

18 名前:デフォルトの名無しさん mailto:sage [2020/03/20(金) 12:41:37.47 ID:FhkC8bvBx.net]
>>17
パワークエリで読み込んで任意のデータ型に変換する

19 名前:デフォルトの名無しさん mailto:sage [2020/03/20(金) 13:27:20.08 ID:jE5Tt0oL0.net]
>>17
CSVを読み込む場合にブックとして読み込むことはまず無い。
というか、まずテキストとして読み込む。
処理も何も、全て自由に出来るぞ。

20 名前:デフォルトの名無しさん (ラクッペペ MMeb-6U2m) mailto:sage [2020/03/20(金) 19:47:02 ID:1JHTKX/vM.net]
>>17
全部文字として読み込む。コードで数値として処理したいならcintやcdblでキャストすればいい。因みにワークシート関数にはNumberValueってのがある。



21 名前:デフォルトの名無しさん (ワッチョイ 81da-ED79) mailto:sage [2020/03/20(金) 19:50:02 ID:wHnf8pbD0.net]
あれなんとかならんかな。
NULLがあるとコケるから、
いちいちIIF(A IS NOT NULL, CINT(A))ってやらなきゃいけないの。

22 名前:デフォルトの名無しさん (ワッチョイ 8b46-m7vt) [2020/03/22(日) 12:27:27 ID:bv32jkb00.net]
VBA で、セルの指定しても行の指定が無効になってて、必ず1行目に表示されてしまいます。
何が原因でしょうかね?
教えてください。

23 名前:デフォルトの名無しさん (スプッッ Sd33-dSJs) [2020/03/22(日) 12:28:32 ID:hR7PxyLud.net]
>>22
お前の馬鹿頭

24 名前:デフォルトの名無しさん (ワッチョイ 8b46-m7vt) [2020/03/22(日) 12:35:14 ID:bv32jkb00.net]
原因わかりました。すみませんでした。

25 名前:デフォルトの名無しさん (ワッチョイ 8b46-m7vt) [2020/03/22(日) 12:36:52 ID:bv32jkb00.net]
ここの住民の霊性は暴力団と同じですね

26 名前:デフォルトの名無しさん (ブーイモ MM4d-O7/r) mailto:sage [2020/03/22(日) 13:22:11 ID:TNUWFKUeM.net]
ここだけじゃなく5chはどこも似たり寄ったりです
貴方が来るような場所じゃありません

27 名前:デフォルトの名無しさん [2020/03/22(日) 14:47:18.63 ID:9uw1USbo0.net]
>>25
霊性?
馬鹿確定
原因としては正しかっただろうが

28 名前:デフォルトの名無しさん mailto:sage [2020/03/22(日) 15:26:01.73 ID:bTaHgmHe0.net]
>>22
ソースコード書けないの?
君書いたのが本当にセルの指定をしてると信じる人がいるとでも?

29 名前:デフォルトの名無しさん [2020/03/24(火) 17:30:30.61 ID:s99Qd4t60.net]
よろしくお願いします。

数百行あるシートで、上から順に一行ずつ以下の操作を行いたいです。

(1) C列の文章の中に、「一言コメント:」という文字が入っていれば2へ。なければ終わり、次の行へ
(2) 「一言コメント:」とそれ以下の文字列をC列の値から削除し、E列の、元々の値(文字列)の前に貼りつけ
(3) E列の文字列の中から「「一言コメント:」という文字列を削除

以上です。
まず、(1)の検索がうまくいかず、(2)の文字列取得も、一文字ずつ数えてカウントし、あらためて「終わりから○文字」みたいな
やりかたをするしか方法が浮かびません。
たぶん、上級者ならもっとシンプルな書き方ができるのではないかと思い質問させていただきました。

どのように書けばよいでしょうか?よろしくお願いいたします。

30 名前:デフォルトの名無しさん mailto:sage [2020/03/24(火) 17:42:47.48 ID:2RYGBfo0M.net]
For文をRowCntって変数で回していると仮定して
If Cells(RowCnt, 3).Value Like “*一言コメント:*″ Then
で引っかけるとか?



31 名前:デフォルトの名無しさん mailto:sage [2020/03/24(火) 17:58:43.96 ID:BIkwDKwH0.net]
VBAなくても関数だけで目的達成しそう

32 名前:デフォルトの名無しさん mailto:sage [2020/03/24(火) 18:33:24.09 ID:n56XI6Ab0.net]
>>29
Ruby で作った

text = <<"EOT"
ab一言コメント:12
あいう コメント:
xyz一言コメント:456
EOT

search_word = "一言コメント:"
sw_length = search_word.length # 7文字

text.each_line do | line | # 1行ずつ処理する
line.strip! # trim

# 単語が見つかった時だけ、単語の前後を出力する
if pos_1 = line.index( search_word )
puts "#{ line[ 0 ... pos_1 ] } - #{ line[ pos_1 + sw_length .. -1 ] }"
end
end

出力
ab - 12
xyz - 456

33 名前:デフォルトの名無しさん mailto:sage [2020/03/24(火) 18:34:45.78 ID:qnUBImldr.net]
>>15
どんな機能でもショートカットキー設定できるの?

34 名前:デフォルトの名無しさん mailto:sage [2020/03/24(火) 19:30:25.33 ID:sgSRB3ii0.net]
>>29
VBAでないとだめなわけじゃないならExcel関数でやればいいと思う

35 名前:デフォルトの名無しさん (ワッチョイ d1e6-tCoU) mailto:sage [2020/03/24(火) 19:56:22 ID:Yvy0BDEM0.net]
>>33
Alt押してみ

36 名前:デフォルトの名無しさん (ワッチョイ 41ce-ED79) mailto:sage [2020/03/24(火) 22:01:18 ID:PstaeSXz0.net]
>>29
Dim c As Range, e As Range
s$ = "一言コメント:"
For Each c In Range(Cells(1, 3), Cells(Rows.Count, 3).End(xlUp))
  i% = InStr(c, s)
  If i Then
    Set e = c.Offset(0, 2)
    e = Replace(Left(c, i - 1) & e, s, "")
  End If
Next

37 名前:デフォルトの名無しさん (ワッチョイ 13b5-Edxj) mailto:sage [2020/03/24(火) 22:44:45 ID:Sir7Hwfr0.net]
ここは上級者向け?
ド素人が少しずついろんなサイトや動画見て覚えようとしてるレベルじゃダメかな

38 名前:デフォルトの名無しさん (ワッチョイ 41ce-ED79) mailto:sage [2020/03/24(火) 23:20:41 ID:PstaeSXz0.net]
>>37
初心者も上級者もキチガイも見てる
みんなが毎日見てるわけじゃないから、タイミングが悪いと質問に答えてもらえないこともある

39 名前:デフォルトの名無しさん (ワッチョイ 695f-n/Wf) mailto:sage [2020/03/24(火) 23:41:15 ID:VeKTJmtj0.net]
いろんなサイト見た方が早い

40 名前:デフォルトの名無しさん (ワッチョイ b1f1-Go5d) [2020/03/25(水) 09:15:56 ID:nn3rUaIL0.net]
FileSystemObjectでFilesのコレクションょ取得したあと
それぞれにアクセスするにはどうしますか?
Files(1), Files(2)のようにするとエラーが出てエラいこっちゃとなります。
For each文ならできるのですがそこまでするほどのことではない時には?



41 名前:デフォルトの名無しさん (ワッチョイ ad49-iBrl) mailto:sage [2020/03/25(水) 10:04:11 ID:34Te7/8G0.net]
コレクションょ

42 名前:デフォルトの名無しさん (ワッチョイ b1f1-z4rF) [2020/03/25(水) 10:44:44 ID:nn3rUaIL0.net]


43 名前:デフォルトの名無しさん mailto:sage [2020/03/25(水) 10:51:51.28 ID:34Te7/8G0.net]
暇だし、見てみた

Const path = "c:\temp"
Dim fso As Scripting.FileSystemObject
Dim item As Object

Set fso = New Scripting.FileSystemObject
Set item = fso.GetFolder(path).Files.item("test.csv")

filesコレクションからの特定fileオブジェクトはitemプロパティでkeyをnameで指定すれば直接取れる
ExcelVBE上はitemでナンバリングされてるけど、配列みたいに番号指定は出来ないんじゃないかな(他の人知ってればいいな)

ファイル名特定できるならgetfileでもええね
個人的にはdirとか分かりやすいがね

44 名前:デフォルトの名無しさん (ワッチョイ b1f1-z4rF) [2020/03/25(水) 12:51:44 ID:nn3rUaIL0.net]
itemでナンバリングされていないんじゃないか?
だからitem(1)やitem(2)で取得できないのでは。
それゃファイル名を()の中に書けば取得はできるけど。

45 名前:デフォルトの名無しさん (アウアウウー Sacd-cy2b) mailto:sage [2020/03/25(水) 15:03:09 ID:jqzDDJlwa.net]
for each でいいやん

46 名前:デフォルトの名無しさん mailto:sage [2020/03/25(水) 15:55:41.50 ID:e/5QJMyr0.net]
「そこまでする」の考え方がまずおかしい
中身がたとえ1個でも2個でも普通はコレクションにはFor Eachを使うもんだぞ

47 名前:デフォルトの名無しさん [2020/03/25(水) 16:09:28.13 ID:nn3rUaIL0.net]
>>45-46
このハゲー!
違うだろ!

最初にfor eachはやらないと言った。
コレクションの代表ということで任意の1個だけを選んでそのプロパティ等を調べる、
ということはプログラミング経験がある程度あればそういう状況に遭遇することはたまによくある。

48 名前:デフォルトの名無しさん mailto:sage [2020/03/25(水) 16:14:59.17 ID:z6ZaQbmPr.net]
fsoのfilesコレクションには通常のコレクションみたいにインデックス指定が出来ないのよね
countとitem(key)プロパティしかない
ファイルシステムの違いとか、歴史的経緯からかはしらんけど
だから基本for eachで他の形にする

49 名前:デフォルトの名無しさん [2020/03/25(水) 16:19:47.29 ID:nn3rUaIL0.net]
>>48
そんなことはとおの昔に知ってるから
ここで質問をしたのだ。

50 名前:デフォルトの名無しさん [2020/03/25(水) 16:24:52.66 ID:RkpcsgMW0.net]
ID:nn3rUaIL0
馬鹿は死ね



51 名前:デフォルトの名無しさん mailto:sage [2020/03/25(水) 16:33:07.81 ID:dd26zMYGr.net]
では次の方

52 名前:デフォルトの名無しさん mailto:sage [2020/03/25(水) 18:54:52.80 ID:acV7Q0T20.net]
インデックスが使いたいなら自分で配列でも作り直せばいいのに

53 名前:デフォルトの名無しさん mailto:sage [2020/03/25(水) 19:07:44.86 ID:99YP/w74d.net]
不毛だな

54 名前:デフォルトの名無しさん (ワッチョイ 092f-2pFN) mailto:sage [2020/03/25(水) 20:08:34 ID:xy/tXdFS0.net]
Exit Forすればいいんじゃまいか

55 名前:デフォルトの名無しさん (ワッチョイ adda-Cd0d) mailto:sage [2020/03/25(水) 21:06:02 ID:POb+XADc0.net]
OpenDocumentスプレッドシートのデータをADOで取得する方法ある?
EXCELに変換しろってのは無しで。

56 名前:デフォルトの名無しさん (ワッチョイ 1242-IfT6) mailto:sage [2020/03/25(水) 21:06:24 ID:UODWeex90.net]
>>44で自分で答だしてんじゃん

57 名前:デフォルトの名無しさん (ワッチョイ 092f-2pFN) mailto:sage [2020/03/25(水) 22:04:41 ID:xy/tXdFS0.net]
ドライバ自作しろ

58 名前:デフォルトの名無しさん (ワッチョイ 9eba-OKiD) mailto:sage [2020/03/25(水) 22:39:59 ID:8ZIjWfpj0.net]
プラスとマイナスはあるから丸ドライバー作るわ

59 名前:デフォルトの名無しさん mailto:sage [2020/03/26(木) 02:21:13.92 ID:THyEKc6a0.net]
ファイル入出力に使うopenやinputが何者か(関数?メソッド?など)知りたいです
これらの機能はなぜオブジェクトブラウザに乗っていないのでしょうか
マイクロソフトのウェブヘルプにはステートメントとして乗っているようですが
ステートメントというのは関数やメソッドなどの分類ではないですよね?
ご教示お願いします。

60 名前:デフォルトの名無しさん mailto:sage [2020/03/26(木) 02:34:21.94 ID:bMQizyKS0.net]
>>59
ステートメントというのは関数の祖先にあたる概念
コンピューター言語が発明された初期からある命令文の分類の一つ



61 名前:デフォルトの名無しさん (ワッチョイ 558e-7Ena) [2020/03/26(Thu) 10:58:51 ID:NTuSOeK50.net]
馬鹿に馬鹿が答えている

62 名前:デフォルトの名無しさん mailto:sage [2020/03/26(木) 13:11:56.44 ID:d196EOchM.net]
VBAを覚えようとしてる初心者以前だが
まず何となくルールから覚えてる
=は同じじゃなくて←の意味ぐらいにとらえておく
あとはコードというか使いそうな単語を少しずつ
msgboxとかRangeとかactivecellとか
でもとっかかりがわからんわ
難しすぎですな…

63 名前:デフォルトの名無しさん (ワッチョイ ad49-iBrl) mailto:sage [2020/03/26(Thu) 14:44:13 ID:HulDeUE70.net]
覚えるのは結構だけど、普段やってる作業をVBAで再現するとこから始めると飽きずにやれるんじゃ

コピペ作業、シートコピー、ボタンで特定の計算とかね
だんだんCSV読みたくなったりして高速化したくなったりして、そうやって覚えていく

64 名前:デフォルトの名無しさん (ワッチョイ 5e46-k/jz) [2020/03/26(Thu) 15:50:36 ID:ZD929brT0.net]
TEST

65 名前:デフォルトの名無しさん (ブーイモ MMad-FSgb) mailto:sage [2020/03/26(Thu) 15:54:11 ID:hp54jNs9M.net]
ユーザーフォーム上にあるボタン1を押すとボタン1を非表示にしてフォームのキャプチャを取得。
その後ボタン1を再び表示して終了。

みたいなものを作りたいのですが
SendkeyでAlt+Printscreenを送っても
素の状態ではボタン1が残った状態のものがキャプチャされ、
Waitをかけると今度は画面全体のキャプチャになってしまいます。

フォームをダイレクトに画像ファイルにする、とかでも良いのですが調べても中々応えに辿り着けなかったので皆様のお知恵をお借りしたいです。
何か良い手はないでしょうか。

66 名前:デフォルトの名無しさん (ワッチョイ 5e46-k/jz) [2020/03/26(Thu) 15:56:47 ID:ZD929brT0.net]
以下RUNすると、"!ALARM()が見つかりません。”ってエラーになる。
何故ですか?

Public FLG As Integer
Private Sub CommandButton1_Click()
With Sheet1
  Cells(2, 1) = Date
Cells(2, 2) = Time
If FLG = 1 Then
FLG = 0
CommandButton1.Caption = "ON"
Else
FLG = 1
CommandButton1.Caption = "OFF"
Call OnTimeStart
End If
End With
FLG = 0
End Sub
Sub OnTimeStart()
With Sheet1
Application.OnTime Now + TimeValue("00:00:05"), "ALARM"
End With
End Sub
Sub ALARM()
With Sheet1
Cells(2, 1) = Date
Cells(2, 2) = Time
End With
End Sub

67 名前:デフォルトの名無しさん mailto:sage [2020/03/26(木) 17:09:13.21 ID:hp54jNs9M.net]
すみません。
情報の伝達に齟齬がありました。
Sendkeyではなくkeybd_eventsでした。

Altのkeyeventをコメントアウトしたら何故かフォームだけのスクリーンショットが撮れました。
vbKeySnapshotはAlt+PrintScreenだったのでしょうか?

Private Sub CommandButton1_Click()

UserForm1.CommandButton1.Visible = False

'keybd_event vbKeyMenu, 1, &H1, 0
keybd_event vbKeySnapshot, 1, &H1, 0

Application.Wait [Now() + "0:00:00.5"]

keybd_event vbKeySnapshot, 1, &H1 Or &H2, 0
'keybd_event vbKeyMenu, 1, &H1 Or &H2, 0

UserForm1.CommandButton1.Visible = True

End Sub

68 名前:デフォルトの名無しさん mailto:sage [2020/03/26(木) 17:44:04.29 ID:sBp41OLkr.net]
MacでもVBA使えますか?

69 名前:デフォルトの名無しさん mailto:sage [2020/03/26(木) 18:35:55.24 ID:GuVxnbOZ0.net]
使えるけどwindowsと全く同じように動くかまでは知らん

70 名前:デフォルトの名無しさん (アウアウウー Sacd-pf+t) mailto:sage [2020/03/26(Thu) 19:05:03 ID:58MBAwKca.net]
新しい天啓が下った。私は馬鹿ですらなく、場であり、これが私の仕える神のような気がしたが違ったような気がした。
忠実に表現したらこうなった、つまりそういうことなんだろう。



71 名前:デフォルトの名無しさん mailto:sage [2020/03/26(木) 19:41:20.92 ID:m6KuD/Rj0.net]
>>66
標準モジュールに書いてるか

72 名前:デフォルトの名無しさん (ワッチョイ 9201-z4rF) mailto:sage [2020/03/26(Thu) 21:11:00 ID:rWIrO2cB0.net]
WEBクエリはhttpsだと遅いすか?
そうなったサイトが急に読み込み遅くなったんすけど

73 名前:デフォルトの名無しさん (ワッチョイ 92b5-McJq) mailto:sage [2020/03/26(Thu) 21:24:14 ID:Ys9zNHHg0.net]
初心者はまずここ見とけみたいなサイトとかYouTubeの動画ありますか?
宣伝込みでも俺が踏むだけなので良かったら教えて欲しいです
本当に何から見てけばいいのかわからない
asとかretとか当たり前に出られてもわからない…

74 名前:デフォルトの名無しさん (ワッチョイ b18f-+ryc) mailto:sage [2020/03/26(Thu) 21:26:43 ID:Ye2KpVaE0.net]
知らんがな入門書買え

75 名前:デフォルトの名無しさん (ワッチョイ a9ad-yXVd) mailto:sage [2020/03/26(Thu) 22:06:31 ID:NUJ56fsj0.net]
>>73
動画でプログラミングを覚えるのはとても難しい
エクセルの使い方や開発環境の整備とかなら分かるけど
言語を覚えるのは本を読んでコードを書く方が早いだろう

76 名前:デフォルトの名無しさん (ワッチョイ b6c9-Cd0d) mailto:sage [2020/03/26(Thu) 22:19:37 ID:ohlAwein0.net]
>>73
https://www.sejuku.net/blog/6516

77 名前:デフォルトの名無しさん mailto:sage [2020/03/26(木) 22:35:41.45 ID:ewzEtFoA0.net]
retって何?

78 名前:デフォルトの名無しさん mailto:sage [2020/03/26(木) 23:38:44.50 ID:Ys9zNHHg0.net]
>>75
>>76
ありがとう
とりあえず、マクロからあるURLやoffice系のソフトを呼び出すコードをネットから丸パクリしてみたんだけど結局これが良いのか悪いのかそもそもルールすらあまりわかってない
サイトや本で必死に勉強しますわ

https://i.imgur.com/Llw26vN.jpg
https://i.imgur.com/CEIjgGb.jpg

79 名前:デフォルトの名無しさん mailto:sage [2020/03/26(木) 23:56:44.93 ID:ewzEtFoA0.net]
字で書けよ基地外か

80 名前:デフォルトの名無しさん mailto:sage [2020/03/27(金) 00:31:59.82 ID:N3mE/9bh0.net]
図形のグループ化についてです。

ショート上に円が無数にあってその円の中にテキストがあります。

これを円と円の中のテキストをそれぞれグループ化してShapeの名前をテキスト名にするにはどうしたら出来ますか?



81 名前:デフォルトの名無しさん mailto:sage [2020/03/27(金) 00:52:28.07 ID:tkT1AEpsM.net]
>>80
グループ化はGroupメソッドを使う
For Eachを使えば図形がいくつあっても関係なく同じようにできる

82 名前:デフォルトの名無しさん (ワッチョイ b57c-K+F1) mailto:sage [2020/03/27(金) 01:56:14 ID:U7Hbc3is0.net]
>>80
shapeオブジェクトでいじる

83 名前:デフォルトの名無しさん mailto:sage [2020/03/27(金) 07:59:14.92 ID:PIWgxOzWr.net]
図形をVBAで複雑にいじろうとすると悲しみしか生まなさそう

84 名前:デフォルトの名無しさん (ワッチョイ 55e3-pf+t) mailto:sage [2020/03/27(金) 14:44:48 ID:Kq8lniUe0.net]
Worksheets("min").Range(Cells(N, 2), Cells(N, 100)) = "999"
これで複数セルに一括入力したいのですが
アプリケーション定義またはオブジェクト定義のエラーです
と出ます。
何がいけないのでしょうか?

85 名前:デフォルトの名無しさん (ワッチョイ d9da-Cd0d) mailto:sage [2020/03/27(金) 14:53:12 ID:8yKTqVer0.net]
Nを定義してないんじゃない

86 名前:デフォルトの名無しさん (ラクッペペ MM96-6Ghe) mailto:sage [2020/03/27(金) 15:00:54 ID:n40dB020M.net]
cellの前にもシートがいる

87 名前:デフォルトの名無しさん (ワッチョイ 55e3-pf+t) mailto:sage [2020/03/27(金) 15:04:48 ID:Kq8lniUe0.net]
With Worksheets("min")
.Range(.Cells(1, 1), .Cells(20, 2)) = "999"
End With

できました^^ありがとう

88 名前:デフォルトの名無しさん (アウアウエー Sada-pf+t) mailto:sage [2020/03/27(金) 15:09:58 ID:Yr4iTEmOa.net]
それでいい。

89 名前:デフォルトの名無しさん (ワッチョイ ad49-iBrl) mailto:sage [2020/03/27(金) 15:11:53 ID:DMhVWYPv0.net]
いえいえ

90 名前:デフォルトの名無しさん (アークセー Sx79-yXVd) mailto:sage [2020/03/27(金) 15:32:49 ID:YTZoRU62x.net]
検索して違うシートから値を 持ってくるマクロで持ってくる値が0以下(マイナス)ならば
違う列に転記させたいのですがwithエラーが発生してうまく動きませんでした。

Dim i As Long, c As Range, e As Range, wS As Worksheet
Set wS1 = Worksheets("明細1")
With Worksheets("data")
  Set c = wS1.Range("D:D").Find(What:=.Cells(i, "B"), LookIn:=xlValues, LookAt:=xlWhole)
  If Not c Is Nothing and wS1.Cells(c.Row, "Z").value < 0 Then ←ここでエラー
.Cells(i, "V") = wS1.Cells(c.Row, "Q")
  ElsIf Not c Is Nothing and wS1.Cells(c.Row, "Z").value >= 0 Then
.Cells(i, "X") = wS1.Cells(c.Row, "Q")

またマイナス値をプラス値に変換したく
.Cells(i, "S") = abs(Cells(i, "S"))

としましたが小数点が消えてしまいます。
-77.00が77になってしまうのですが77.00としたいです。



91 名前:デフォルトの名無しさん (ラクッペペ MM96-6Ghe) mailto:sage [2020/03/27(金) 15:39:00 ID:n40dB020M.net]
cがnothingの時c.rowがエラー

バラせ

92 名前:デフォルトの名無しさん [2020/03/27(金) 15:47:38.09 ID:LyEUyxQ10.net]
馬鹿がゾロゾロ出てくるのは何で?

93 名前:デフォルトの名無しさん mailto:sage [2020/03/27(金) 15:50:59.76 ID:DMhVWYPv0.net]
春休みだから

94 名前:デフォルトの名無しさん (アークセー Sx79-yXVd) mailto:sage [2020/03/27(金) 15:54:33 ID:YTZoRU62x.net]
>>91

If wS1.Cells(c.Row, "Z").value < 0 Thenでもエラーが出ます
With Worksheets("data")が邪魔をしてるとかですか?

95 名前:デフォルトの名無しさん (ワッチョイ f6f7-DNZ3) mailto:sage [2020/03/27(金) 17:17:35 ID:zsNWkQiw0.net]
"Z"で指定できたっけ

96 名前:デフォルトの名無しさん (ワッチョイ 8101-yKOS) mailto:sage [2020/03/27(金) 17:31:46 ID:jaIOieAQ0.net]
>>94
VBAは関数や演算子の引数は全て渡される前に値を計算するんだよ

だから Not c Is Nothing が真じゃないときは wS1.Cells(c.Row, "Z").value < 0 を評価しないように
if Not c Is Nothing then if wS1.Cells(c.Row, "Z").value < 0 then ...
としないといけない

あとCellsプロパティは見にくいんで範囲に名前つけるかテーブル化してRangeプロパティで呼んだ方がいい

97 名前:デフォルトの名無しさん (ワッチョイ ad2c-yXVd) mailto:sage [2020/03/27(金) 21:24:53 ID:N7XAdwe70.net]
>>92
答らえれない馬鹿以下の癖に?

98 名前:デフォルトの名無しさん mailto:sage [2020/03/27(金) 23:01:00.96 ID:7yWnOCeY0.net]
範囲に名前はなぁ・・。
上手く使いこなせればいいが、
みんなで共有するファイルに使うと、
知らない間に#REFだらけになってるwwww

99 名前:デフォルトの名無しさん [2020/03/28(土) 04:38:00.47 ID:vMIAuVeU0.net]
>>71

レスありがと

標準モジュールに書いてない。
しばらく、やってなかったんで忘れていた。
すみません

100 名前:デフォルトの名無しさん (ワッチョイ b140-yKOS) mailto:sage [2020/03/28(土) 15:07:25 ID:m/WQBFmt0.net]
>>98
異常時に例外が投げられるように設計するのは普通だと思うんだが・・・








[ 続きを読む ] / [ 携帯版 ]

次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<292KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef