Excel VBA 質問スレ Part70

■ このスレッドは過去ログ倉庫に格納されています
2021/03/18(木) 22:08:43.71ID:jtngtgXU0
!extend:checked:vvvvv:1000:512
↑同じ内容を2行貼り付けるナリ

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

※前スレ
Excel VBA 質問スレ Part69
https://mevius.5ch.net/test/read.cgi/tech/1607786543/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
2021/03/20(土) 01:01:30.93ID:7VltWvHha
>>13
ありがとうございます
ワークシート関数は使わず、計算は全部vbaでやっています
関数と言えるのはピボットグラフのグラフ部分だけです
ピボットグラフのグラフ部分の関数が重くなっている可能性が考えられるかも、と思いました
ありがとうございます
2021/03/20(土) 04:43:36.06ID:kQoUW+sA0
すげえなワークシート関数一切使わんでマクロだけでやるとは
2021/03/20(土) 06:51:00.93ID:EyTYq69F0
遅いとか速いとか漠然としているので何秒かかっているかもわからんし
データ量やステップが増えればある程度遅くなるのは当然じゃね
2021/03/20(土) 07:28:18.81ID:/meO8w1y0
2〜3秒でも遅いと思う人もいるしね
2021/03/20(土) 10:08:34.03ID:D1FjuE5r0
VBA使ってんならどの部分でどんだけ時間かかってるか測定すりゃいいだけの話なのになぜしないんだろう
2021/03/20(土) 11:15:44.57ID:Awf5aTeqa
>>18
Refreshのところで3秒かかっています
他処理全部は0.5秒で終わります
2021/03/20(土) 20:35:40.01ID:EyTYq69F0
PCの性能が低いんじゃね
2021/03/20(土) 20:48:09.36ID:kQoUW+sA0
それだ!
パソコンのせい
ゲーミング用買えば全てにおいてスマホ級の速さだ!
2021/03/21(日) 16:59:06.62
5chのスレで1000まで書き込まれたスレを1から1000までコピペしてsheet1に貼り付け
sheet1を特定のキーワードで検索して、書き込まれたレスと返信があったレスを抽出してsheet2に貼り付けしたいです
返信がない場合は空白と入力したいです
アイデアが思い付きません、宜しくお願いします
2021/03/21(日) 17:54:39.86ID:fT/r6tJT0
いつもの
2021/03/21(日) 21:09:20.26ID:aZS3hsKq0
>>6
イベントやアラートって目的も無く停止しない方がいいと思うが
2021/03/22(月) 05:59:51.89ID:B7/s/yNjM
>>22
5chアフィ乙
2021/03/23(火) 06:37:42.10ID:3hKAtAlua
エクセルからhtmlで保存するとき
グラフが1000以上でもできますか
2021/03/23(火) 10:17:41.75ID:lizcePOK0
自分で作らずに質問してくる意味が解らない
28デフォルトの名無しさん (ワッチョイ 298e-GJb0)
垢版 |
2021/03/23(火) 14:45:46.64ID:KXdqd9JD0
ゆとりだから
29デフォルトの名無しさん (ワッチョイ 5190-U6ZO)
垢版 |
2021/03/23(火) 15:16:16.58ID:J1vTYXys0
選択した範囲をグラフにするマクロを作りたいです
マクロ記録でグラフ化するまでを記録し、それを改造してやっているのですが

' Macro1 Macro
ActiveSheet.Shapes.AddChart.Select
ActiveChart.ChartType = xlRadar
ActiveChart.SetSourceData Source:=Range(左上:右下)
End Sub


「選択してる範囲を取得」してその範囲を代入する方法がよくわかりません

ActiveChart.SetSourceData Source:=Range(左上:右下)

のRangeの左上、右下部分にSelection(1)やSelection(Selection.Count)を入れようとしてるのですがエラーになります
2021/03/23(火) 17:44:03.01ID:XH4udpo7H
selectionだけでいいんじゃね
2021/03/23(火) 17:59:59.95ID:dulEqDGL0
チャートをセレクトしてるからセルのセレクトが外れてるんだよ
Addchartの時にセレクトじゃなくてオブジェクト変数にセットして
アクティブチャートの行を【変数名】.(以下略)にしてやってみ
変数にセットするときに文頭のSetを忘れないようにな
32デフォルトの名無しさん (ワッチョイ 71fd-ED79)
垢版 |
2021/03/24(水) 18:47:39.00ID:7fnGaRlR0
エラー処理で On Error GoTo を On Err GoTo と書いていて
全く気付かずエラーになって初めて、ラベルに飛ばないので気づきました。
デバッグでは判定しないようですが、これらを事前にチェックで見つけることは
出来ないのですかね?
2021/03/24(水) 19:49:11.93ID:SmPCs0wuM
ヤフーファイナンスの仕様が変わった?のか、
当該銘柄のページから
Set FR = rngResult.Find(What:="出来高*", LookAt:=xlWhole)
みたいな感じで出来高取得してたのが
できなくなった

どこを直せばいいのかわからん
もしかしてこのやり方では
取得できなくなった?
2021/03/24(水) 19:50:41.85ID:jjB0JAKeM
>>32
まともなコードならGoto文なんてたいしてないはずだからGoto検索して目視確認で良いんじゃね?
3529 (ワッチョイ 9990-oXDN)
垢版 |
2021/03/24(水) 20:04:27.24ID:lll8bKoA0
うまくいきました、ありがとうございました
もう一つ質問させてください

以下は↓の画像のようにデータを範囲選択し実行した場合、3項目ごとに3つのグラフを表示するマクロです
@https://i.imgur.com/qb9quh1.jpg

Sub Macro1()
' Macro1 Macro
Set CTop = Selection(1)
Set CLast = Selection(Selection.Count)

Dim i As Integer
For i = 0 To 2
y = i * 3
With ActiveSheet.Shapes.AddChart.Chart
.ChartType = xlRadar
.SetSourceData Source:=Range(CTop.Offset(0, y), CLast.Offset(0, y))
End With
Next i
End Sub
ただ、データに問題があり、「行9」以降の部分を抜き出してグラフを作りたいんです
そこで↓のように範囲選択をして実行したのですが、系列名が出ないのでどのデータかわかりにくいんですよね
Ahttps://i.imgur.com/u2vrDOl.jpg

実際のデータは膨大なため、いちいち「行○○〜行○○まで」と数値で指定するのは難しいです
できればA画像のように手動で範囲選択した場合、@のようにa,b,cと系列名が出るのが理想です
.SetSourceData Source:=Range(○○) の部分をうまく変更すればいいのか、それとも
.SeriesCollection(1).Name = ○○ とあとで系列名を変えるのが良いのでしょうか?
2021/03/24(水) 20:32:05.20ID:HXzqnMHf0
個人的には系列名変える方が好き
2021/03/24(水) 21:05:50.71ID:N9nRIl9KH
>>32
インタプリタは事前に文法チェックをしないのが普通ですから、そういうのはインタプリタには無理でしょう‥‥
2021/03/24(水) 22:00:53.02ID:T3engiTo0
いまどき純粋なインタプリタなんてそうそうないけどな

一応VBAは事前にコンパイルチェックできるが、>>32
On 変数 GoTo xxっていう文法があってそれにそっているからエラーにならない
そして変数宣言を強制しても、Errって組み込みオブジェクトが宣言なしで使えるという罠

なんかコード分析するようなツールでもあれば検出できるかもしれんが、まあ標準の範囲じゃ無理だな
2021/03/24(水) 22:54:43.12ID:/MIQ1K/L0
>>35
元データと選択された表示用データを別にすればいいんじゃね
2021/03/25(木) 01:08:37.06ID:QAr0K9ya0
いきなりアホになってコード組むのが劇遅くなりました。
きれいなコードを書こうと思ったんです。
2021/03/25(木) 04:40:02.78ID:d+5Eu7Qca
思っただけにしとけ
2021/03/25(木) 10:21:24.54ID:Btw5OylJ0
ありがとうございました。
自分で注意深くやるしかないんですね

実行中のfunction(やsub)名を取得することは可能でしょうか?
やりたいことはエラー処理時にその名称を表示したいのですが
べた書きするしかないですかね


Public Function test() As String

On Error testErr

testErrr:
MsgBox "testErr" & vbCrLf & "エラー番号:" & Err.Number & vbCrLf & "エラー内容:" & Err.Description, vbExclamation
End Function
2021/03/25(木) 10:44:00.77ID:kL+lpreE0
あくまで個人的だが

MsgBox "○○で異常が発生しました." & vbCrLf & "Err:" & Err.Number & " " & Err.Description, vbExclamation, "Function test"
2021/03/25(木) 12:19:36.16ID:v0lS7PpFM
個人的には、だけど最終的にはエラー停止が発生せずイレギュラーの場合は自らメッセージを出して処理を終了するってするのが望ましいんじゃないかなぁ
動作確認で何実行してるか知りたいだけなら各プロシージャの頭にDebug.Printでプロシージャ名吐き出しておけばどこで止まったかが分かりやすい
まぁDebug.Printって軽くはないから少し大きめのプログラムだと動作確認中は時間かかる感じになっちゃうだろうけど
2021/03/25(木) 13:26:17.29ID:kL+lpreE0
確かにそうだ、異常が出ないで済むように入力データのチェックとか
ファイルの有無とかを先に確認すればエラーなんか滅多に起きないからな
2021/03/25(木) 13:41:18.71ID:Btw5OylJ0
>>45
勿論そういうチェックは入れていますよ
2021/03/25(木) 14:16:03.41ID:NGSCZFfJH
ちゃんとチェックしてればOn Errorの出番なんか滅多にないはずだけど
複数の関数でエラーが出るなんて、あきらかに設計がおかしい
2021/03/25(木) 20:31:33.14ID:hvCMihey0
>>42
そうだね。VBAと言うかVB6系のは基本ベタ書きするしかない。
例外としてクラシックASPでVBS走らせたときはエラー行を表示させることが出来る。
VB.Netになるとその辺の情報は細やかに取得出来る。

VBAはベースが古い言語だから仕方がない。
2021/03/25(木) 20:56:22.97ID:hvCMihey0
>>47
別に設計がおかしいと言うことはないよ。
これはVBAに限らず論理エラーで把握しきれないものは実行時エラーとして捕まえる仕組みは当然のように設定する場合がある。

例えばDBに繋ぎに行って繋がったけどその後で何らかしらの外部的要因で切断された場合など、
実行時エラーが発生するのでその場合は何度か再接続を試みてダメだったら初めてエラーとしてポップアップするとか。

その場合、当然データ復旧させるためにもどこでどんなことやろうとして落ちたのかの情報は重要になってくることが多い。
その他にも概ね実行時エラーは予期せず落ちるものの方が多いので
むしろ状況を把握するためにも細かい情報が必要になることの方が多いよ。
2021/03/25(木) 21:30:34.23ID:NGSCZFfJH
それってVBAでやるようなことか?
例外処理が必要とわかってるなら.netで書いてTry Catchを使うべきだと思うが
2021/03/25(木) 22:07:43.24ID:hvCMihey0
>>50
.Netの環境が選択出来る状況ならそれでもいいんじゃないの?
.NetならException継承して好きにエラー設定すればいい。
けどここはあくまでEXCEL VBAのスレだからその話は置いておくよ。

後、VBAでやることかどうかと言うのはあくまで俺はだけど正直あまり選択基準にないな。
第一に要件を満たしているか、次に操作や保守がし易いかかな。まぁ、納期も重要な要素にはなるけど。

だからもし後で保守するのが楽になるなら
場合によってはエラーメッセージ出しておしまいにすることもあるだろうけど
場合によってはエラーハンドリング用のクラス作ったり、
論理エラーもRaiseして実行時エラーのように処理して一元管理したり、
後始末処理をコールバックで移譲して処理したりすることも視野に入れるよ。
2021/03/26(金) 01:12:09.52ID:ZoYVceoP0
Date型はミリ秒を持てないのでしょうか?
エクセルシートでミリ秒まで表示できている時刻があって、そのシリアル値をVBAのDate型変数に代入するとミリ秒以下が丸められてしまいます
53デフォルトの名無しさん (ワッチョイ 655f-luGl)
垢版 |
2021/03/26(金) 01:52:58.20ID:YMBMwB0G0
>>52
時分秒までです。
54デフォルトの名無しさん (ワッチョイ 655f-luGl)
垢版 |
2021/03/26(金) 01:56:39.74ID:YMBMwB0G0
>>52
Date型に入れて何がしたかったのか?
2021/03/26(金) 02:03:12.37ID:NYhr3fTi0
日付を扱うならDate型使うけど
時間を扱うならDouble型使うなぁ
2021/03/26(金) 08:07:23.35ID:3Vso6amb0
>>52
シリアル値で日付までが整数部で時間から小数点になるから小数点扱える型なのにミリ秒が扱えないと言うのが
ちょっと引っ掛かったので調べてみたよ。

方式はセルにミリ秒まで表示出来るフォーマットを設定して(yyyy/mm/dd hh:mm:ss.000)
隣のセルにその値を代入する数式を書いて、数値で小数点16桁くらい表示するようなフォーマットを設定して、
またその隣にそのセルの値を代入してセルにミリ秒まで表示するフォーマットのセルを用意して
元の値が正しく表示されるか確認した。

で、VBAで最初のセルの値をDATE型の変数に入れてDouble型に変換したら、
キチンと2番目のセルと同じ頭になることが確認出来たので、DATE型はミリ秒まで持てることが分かった。

じゃ、何で丸められちゃうの?
と言うことになると思うけど、どうやらこういうことらしい。
https://support.microsoft.com/ja-jp/topic/excel-ワークシートのセルに-vba-の日付形式またはバリアント型の日付形式を割り当てようとすると-ミリ秒が最も近い秒に丸められます-4a0af2c5-78de-762f-6431-8669890f585b
2021/03/26(金) 12:00:33.82ID:scqWQXi5M
>>53-56
ありがとうございます
勉強中でVBAの動きを理解したいだけで、何がしたいという訳ではないです

調べてみましたが以下の理解で合っていますか?
・シリアル値はDouble型の情報
・日付(Date型)はシリアル値の表示形式を"yyyy/mm/dd h:mm:ss"に変更しているイメージ
 内部ではミリ秒含むシリアル値を持っており、ミリ秒以下の情報が九められた訳ではない
・シリアル値とDate型はCDbl とCDateで相互変換可能。このときもミリ秒以下の情報は丸められない

・ミリ秒が丸められるのは、Date型をセルに=で代入したとき
 これは、Date型の表示をセルにコピーしているため
・セルにDate型でなくシリアル値を代入することで回避できる
2021/03/26(金) 12:08:12.92ID:RjaLBbvt0
(´-`).。oO(「丸める」をどう入力したら「九める」となるのだろう・・・知らんけど)
2021/03/26(金) 12:44:01.98ID:3Vso6amb0
>>57
本当の意味合いではかなり違う気もするけど
イメージ的にはそんな感じかな
2021/03/26(金) 16:10:18.31ID:xthmZvz40
>>58
手書き入力なんじゃないの
知らんけど
61デフォルトの名無しさん (ワッチョイ 655f-luGl)
垢版 |
2021/03/26(金) 17:55:08.09ID:YMBMwB0G0
>>57
Excelの内部データ形式は突き詰めない方がいいよ。

それにセルの書式の組み合わせもあるから、初心者は気をつけてね。
2021/03/26(金) 18:28:35.59ID:scqWQXi5M
ありがとうございます
これ以上は突き詰めないようにします
ここまで解説してるサイトはほとんど見当たりませんでしたが、
Application.Waitの引数にVBAの関数を使うと何故精度が低くなるのか?など
ここまで理解して初めて分かることもあったので良かったです

ちなみに丸が九になったのはパソコンで打った文章をスマホで取り込んだからですね
63デフォルトの名無しさん (ワッチョイ b18e-COrd)
垢版 |
2021/03/26(金) 20:17:02.94ID:9W175/Ms0
馬鹿は入力機器で漢字コードが決まると思っているのか
64デフォルトの名無しさん (ワッチョイ 655f-luGl)
垢版 |
2021/03/26(金) 20:24:40.81ID:YMBMwB0G0
漢字コードとは古臭いw
65デフォルトの名無しさん (ワッチョイ 655f-luGl)
垢版 |
2021/03/26(金) 20:27:23.31ID:YMBMwB0G0
JISコード時代の俗称だぞ。
66デフォルトの名無しさん (ワッチョイ b18e-COrd)
垢版 |
2021/03/26(金) 20:58:19.29ID:9W175/Ms0
JISとかEBCDICとか古いこと自慢か?
2021/03/26(金) 22:02:40.63ID:AwqZOL59M
5chはジジイの巣窟です
昔話に花が咲くのです
68デフォルトの名無しさん (ワッチョイ 655f-j37g)
垢版 |
2021/03/26(金) 23:45:57.50ID:YMBMwB0G0
漢字ROMの時代からやってきた過去の人
2021/03/27(土) 20:27:21.67ID:5nK2M5CU0
質問させてください
worksheetfunctionでsumifやcountifを使用する際の範囲指定はrange(cells(),cells ())と指定する方がいいのか、cells ().resize()と指定する方がいいのか、どっちでしょう?
皆さんはどっちを使用していますか?
70デフォルトの名無しさん (ワイーワ2 FF1a-j37g)
垢版 |
2021/03/27(土) 21:10:41.58ID:/5jOHbkqF
rangeは特殊だからはまりやすい。
2021/03/27(土) 21:23:53.88ID:+4xxppTF0
範囲をどうやって決めているかによる
2021/03/27(土) 21:28:05.27ID:5nK2M5CU0
一般的な場合として、例えば最大行までの範囲とした場合はどうでしょうか?
初心者なので、最近、resizeを学んだばっかりなのですが、resizeの方がすっきりしてるような気がするけど、rangeの方がパッと見、分かりやすいよなぁと思いまして
2021/03/27(土) 21:49:27.21ID:WrV3x1Cf0
たしかえくせるちゅんちゅんでそんな解説記事あったよ
おれは範囲指定だったらrangeかな
resizeは増やす値をちゃんと考慮しないと間違えやすいんだよな
74デフォルトの名無しさん (ドコグロ MM9a-eYIm)
垢版 |
2021/03/27(土) 22:29:55.09ID:kX/HYgzKM
>>72
その程度ならお好みでどうぞ
値貼り付けとかやる場合は、range(cells(),cells ())なんか使ってられないから、Set、Offset、Rresizeの組み合わせを使っているな
2021/03/27(土) 22:36:49.88ID:DIdh8j19a
テーブルにすればRangeでCellsを囲う必要がなくなるから、まずテーブルにできるかから考えてみれば
76デフォルトの名無しさん (ワッチョイ b163-VcSF)
垢版 |
2021/03/28(日) 12:09:35.83ID:gO7qo7Yf0
現在6秒に1回実行するマクロを組んでいるのですが、
複数のエクセルファイルを開いてそのマクロを実行すると、
マクロを実行しているファイルとは別のエクセルファイルを
マウス等で触ってアクティブにすると、関係のないそのエクセルファイルで
そのマクロが実行されて、肝心のマクロが肝心のファイルで実行されず、
エラーになるという現象で悩まされています。
例えば、ファイル名「A」、ファイル名「B」のエクセルファイルがあり、
ファイル名「A」の中にマクロでセルF1を6秒間隔で選択するコードがあると、
6秒間隔で更新している時にファイル名「B」を触ると(アクティブになる)、
ファイル名「B」のセルF1を選択してしまうのです。本来はファイル名「A」
で組んでいえるのでファイル名Aで実行されなければいけないのに。。。
ファイル名、シート名を指定して他のファイルでは実行できないようにコードを
入れてみたのですが治りません。どうすればよいのでしょうか?
ご教授お願いします。
2021/03/28(日) 12:41:13.75ID:SibCEmYdH
>>76
コードの中の全部のRangeやCellsにもブック名とシート名を書いてある?
2021/03/28(日) 12:53:44.04ID:vqLmoR8/M
面倒なのは分かるが意図しない動作をする時はF8で1ステップずつ挙動を確認したりデスクに適当な人形をおいてコードを1行1行何をしている行なのかを人形に対して声に出しながら説明すると原因を突き止めやすいぞ
2021/03/28(日) 13:27:37.72ID:slfnYujm0
当該ブックのアクティブ化とCallだけでやろうとしている?

これかしら?
Application.Run ‘パス+ブック名’!マクロ名

https://excelwork.info/excel/runmethod/
2021/03/28(日) 14:55:28.65ID:0AXzz3HSa
thisworkbookでいいんじゃね
2021/03/28(日) 15:28:42.70ID:58jRB2Jo0
>>76
これだとアクティブなシートの[A1]に入力されます
Range("A1")=1

これだと指定したファイルの指定したシートの[A1]に入力されます
Workbooks("Book1").Worksheets("Sheet1").Range("A1") = 1
2021/03/28(日) 17:37:33.16ID:NPcBjbDnp
まーおそらく値の設定時に
ちゃんとどのブック、どのシートって
設定されていないんだろうけど
もっと気になるのは6秒というスパンの中で
処理が6秒を間に合わなかったらどうするのか
ちゃんと考えて作っていのかってことかな
大きなお世話かも知れんけど
83デフォルトの名無しさん (ワッチョイ d2e6-WhAp)
垢版 |
2021/03/28(日) 18:29:23.67ID:vpNC6cf/0
セルの編集は6秒あれば楽勝です
2021/03/28(日) 20:03:24.72ID:5/aHi+ebd
>>40
自分が書き込んだかと思ったわw
2021/03/28(日) 20:31:26.17ID:y1jMexrp0
UIAutomationでInvokeをするVBAマクロをタスクスケジューラで
日次・定時に起動しているのですがロック画面ではInvokeが実行されません

解決策をご存知でしたらご教示お願いします
2021/03/28(日) 21:54:46.91ID:FtDhz91V0
ロック画面にしない
2021/03/29(月) 18:09:13.47ID:RBGHkQmra
もはやexcelの問題じゃねーし
2021/03/29(月) 19:13:47.90ID:QhuH86uEa
なんでFINDで探せないんだろ
とおもったら
改行コードがはいっていたでござる

やれやれ
2021/03/30(火) 17:58:10.32ID:0EHjDb6N0
質問です

前はExcel2010の時はレジストリを維持って、VBAファイルだけはインスタンス起動が出来るようにするとか可能でしたが
2019にするとインスタンス起動ができなくなってました。
.xlsmファイルだけインスタンス起動するとか方法はないでしょうか
2021/03/31(水) 04:17:21.25ID:1Kn3VVGI0
右クリックして[新規] じゃだめなのか?
9176です。 (ワッチョイ b163-VcSF)
垢版 |
2021/03/31(水) 18:32:23.42ID:Evr26ox50
回答くださった皆さん本当に有難うございます。
これから回答いただいた対処法を全て1個1個試していこうと思います。
なお6秒に一回とは、エクセルのセルに株価をリアルタイムで
反映するソフトがあるのですが、それで株のアラート機能を
VBAで自作で作っているので必要なのです。
ではでは。
2021/03/31(水) 20:42:46.87
sheet1のA1には
https://www.jma.go.jp/英数字

A3からA10000には、それぞれ異なるURLが記載されています

B1には
https://maps.gsi.go.jp/index_m.htmlhttps://www.mlit.go.jp/river/toukei_chousa/kasen/jiten/nihon_kawa/0305_edogawa/0305_edogawa_00.htmlhttps://www.jice.or.jp/knowledge/japan/commentary03
みたいなURLが繋がっている文字列があります

B2からB10000には、上の様なURLが繋がっている文字列があります

A1からA3は
https://www.jma.go.jp/英数字

B1
https://maps.gsi.go.jp/index_m.html

B2
https://www.mlit.go.jp/river/toukei_chousa/kasen/jiten/nihon_kawa/0305_edogawa/0305_edogawa_00.html

B3
https://www.jice.or.jp/knowledge/japan/commentary03


みたいにB列にあるセル内を分解して、分解した分だけA列にA1の文字列を補う処理
以降B10000までを処理して
sheet2に記載したいのですが、どのようにすればよいでしょうか?
2021/03/31(水) 22:33:41.42ID:GYCr8oLd0
何言ってるのか判らんが
好きなようにやればいいよ
94デフォルトの名無しさん (ワッチョイ 655f-j37g)
垢版 |
2021/04/01(木) 00:43:47.27ID:Qm9pGYRd0
>>91
「エクセルのセルに株価をリアルタイムで
反映するソフトがある」

こんな珍味なソフトウェアがあるのかw
95デフォルトの名無しさん (ワッチョイ b163-VcSF)
垢版 |
2021/04/01(木) 02:05:44.32ID:GioFRFH30
>>94
楽天RSS 岡三RSS。
因みに株は難しく甘い世界ではないので安易にやらないようにしましょう。
ほとんどの人が負けます。
96デフォルトの名無しさん (ワッチョイ 655f-j37g)
垢版 |
2021/04/01(木) 03:02:30.23ID:Qm9pGYRd0
変な外国人が作ったんだろうなあ
2021/04/01(木) 09:31:40.60ID:JyQIT704d
「珍味」ってそういう使い方する言葉だっけ
2021/04/01(木) 10:40:32.36ID:Jj+/G5yda
たぶん珍妙
2021/04/01(木) 10:48:06.97ID:jNbL4ETRd
ワークシートの一部を画像として保存する方法にChartObjectsのExportメソッドがあります
が、罫線が一部消えてしまったりフォントが潰れたりして、画質が悪いのが気に入りません
もっと高画質で範囲指定してスクショを保存する方法はないでしょうか?
100デフォルトの名無しさん (ワッチョイ 6963-VcSF)
垢版 |
2021/04/01(木) 11:51:22.66ID:tUMm1OA70
>>99
クリップボードを手作業で切り取る際、エクセルの倍率
(Ctrl+マウススクロールで変えれるあれ)を100%よりも大きい高倍率で
切り取った方が画質が良い。
従って、その画像を取得するマクロの直前に、
エクセルの画面の大きさを変えれるコードがあるので、
それを直前に入れ、それを切り取れば恐らく高画質のが出来るんじゃないかな。
最後は勿論ばい倍率をもとに戻すマクロを入れれば良いと思う。
101デフォルトの名無しさん (ワッチョイ 62ee-Bi/r)
垢版 |
2021/04/01(木) 12:01:45.09ID:fy6TS88x0
>>90
インスタンス起動ではないですよね
2021/04/01(木) 15:56:27.00ID:yB6nLlLi0
>>92
Ruby で作った。
正規表現の否定先読みなどを使えば、もっとスマートに書けるかも

# ? は、直前のパターンの0〜1回の繰り返し。「https?」は、「http|https」と同じ意味
re = %r!(https?://)! #=> https?:\/\/

input_str = %w(https://a/b.html http://c https://x/y).join
#=> "https://a/b.htmlhttp://chttps://x/y";

pos = input_str.size # 文字列の末尾の位置

results = [ ]

# 文字列の末尾から、一致させていく
while pos = input_str.rindex( re, pos )

# 一致した位置から末尾までを削除して、それを配列の先頭に追加していく
results.unshift input_str.slice!( pos..-1 )
end

p results #=> ["https://a/b.html";, "http://c";, "https://x/y";]
2021/04/01(木) 16:01:13.59ID:yB6nLlLi0
>>102
修正
>re = %r!(https?://)! #=> https?:\/\/
re = %r!https?://! #=> https?:\/\/

( ) は、いらない
2021/04/01(木) 16:53:17.71ID:7y1pTd6e0
>>94
オプションのスマイルカーブをリアルタイムに描画するエクセルソフトとかもあるよ。
105デフォルトの名無しさん (ワイーワ2 FF1a-j37g)
垢版 |
2021/04/01(木) 17:08:13.22ID:jznaQuthF
外部からローカルのファイルを更新するなんてマルウェアみたいだな。
2021/04/01(木) 21:32:16.81ID:5T6IIfi20
>>95
配当なんてせいぜい数%
そこから税金2割引かれる
値上がり益は株価が永遠に上がり続けない限り期待値はゼロで、儲かったら2割税金、損しても2割補填してもらえるなんてことはない
つまり税金を考慮した期待値はマイナス
2021/04/01(木) 23:13:35.12ID:yB6nLlLi0
>損しても2割補填してもらえるなんてことはない

補填してもらえる。
何年か損失を繰り越ししていれば、儲かった時に相殺される

長年、銀行が税金を払わないのは繰越損失があるので、
その後、利益が出ても相殺されるから
2021/04/02(金) 20:32:20.64ID:OjzTopDr0
>>107
永久保証ならな
3年でさようならなんだから期待値はマイナス
2021/04/03(土) 10:18:57.57ID:0vCxCYiYa
最近のはinternetexploreを許否するwebがあるからこまる
スマホならともかくビジネスではまだ主流なのに
2021/04/03(土) 10:25:49.87ID:RckTLwqyd
さすがワッチョイにIEを出す男は言うことが違う
2021/04/03(土) 10:59:03.48ID:D2e+M4g2M
Web開発でIE対応が要件にないときにはむしろ意図的にIEで動かないようにするわ
勝手にIEで使われて文句言われるの最高にウザい
2021/04/03(土) 13:29:03.89ID:XPTw6Pj4M
>>33
自己レスだがわかったわ
WEBクエリでWEB内容をシートに書き出す
その中から出来高とかのワードをfindで探して
そのワードのn行後を取ってくる
みたいな動作をしてるんだけど、
ヤフーファイナンスの仕様が変わって
n行後の場所が変更になってた

ETFだけは従来の場所だから
上記結果がゼロならば違う場所を
取ってくるようにした

コピペプログラマだから
今回findとかOffsetを強制的に
学ばされて勉強になった
2021/04/03(土) 13:43:31.82ID:LoNYZ+kpF
>>110
IEが拒否されるときは
こっそりExcelシートでhtml をつくるだよ
htmlならまず拒否されないから

そーして、いつの間にかフォルダーが開いてる
フォルダー御開帳よ
2021/04/04(日) 02:10:27.86ID:7SFCjwlv0
ListViewのすべての項目を一発で削除する方法はありませんか?
ListBoxならClearメソッドが使えるようなのですが
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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