トップページtech
1002コメント374KB

Excel VBA 質問スレ Part45 [無断転載禁止]©5ch.io

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2017/01/03(火) 02:51:16.56ID:9Y8iTik6
ExcelのVBAに関する質問スレです
コード書き込みや作成依頼もOK

※前スレ
Excel VBA 質問スレ Part44
http://echo.2ch.net/test/read.cgi/tech/1479421482/


※関連スレ
VBAなんでも質問スレ Part2
http://echo.2ch.net/test/read.cgi/tech/1432173164/
Access VBA 質問スレ Part1
http://echo.2ch.net/test/read.cgi/tech/1328536426/
Excel総合相談所 125
http://echo.2ch.net/test/read.cgi/bsoft/1481369538/
0260デフォルトの名無しさん2017/01/21(土) 08:04:31.56ID:6NvQGvfC
>>244-245
2chのバグだろう

書き込み確認画面が出る際、" を使うと、そこで文字列の終了とみなされる。
" の代わりに、\" とエスケープすれば、どうだろう?

それか、書き込み確認画面が出たら、1度キャンセルすれば、確認画面は出ないようになった
0261デフォルトの名無しさん2017/01/21(土) 09:24:23.74ID:W/Qp5igc
>>244
↓のサイトを参考にして作ってみたら?
http://outofmem.tumblr.com/post/63355773212/vbavbaでjsonをパースする

ざっくり 作って見たけど なんとかなりそうよ
学校の課題らしいからこの辺で
では
0262デフォルトの名無しさん2017/01/21(土) 10:17:45.16ID:W/zpHkC+
Jsonは構造がシンプルだからパーサー書くのも難しくない
学生なら勉強として書いてみる価値はある
0263デフォルトの名無しさん2017/01/21(土) 11:18:37.44ID:1cIKmUbZ
>>259
HTML でやるならここのサンプル
https://msdn.microsoft.com/ja-jp/library/office/ff869979.aspx

リッチテキストでやるならフォーマットを RTF に設定して RTFBody に設定すればいい
https://msdn.microsoft.com/ja-jp/library/office/ff867828.aspx
0264デフォルトの名無しさん2017/01/21(土) 11:23:47.66ID:7WDSmlh4
>>263
ありがとうザマス。
やってみるでガンス。
0265デフォルトの名無しさん2017/01/21(土) 11:27:24.97ID:7WDSmlh4
あとこれも頻繁に使う予定ですが
Outlookのカレンダー(おそらく型はolAppointmentItemでしょう)の本文でも
本文のある部分を好きな色にしたり好きなフォントにしたり好きなサイズにしたりハイパーリンクをつけるにはどうすればいいでしょう?
ちょっと調べるとBodyFormatプロパティやHTMLBodyプロパティはなさそうですが。
0266デフォルトの名無しさん2017/01/21(土) 11:44:27.71ID:1cIKmUbZ
>>265
HTMLBody はないけど RTFBody はあるよ
https://msdn.microsoft.com/ja-jp/library/office/ff861303.aspx
0267デフォルトの名無しさん2017/01/21(土) 12:01:08.22ID:7WDSmlh4
>>266
わたしのOffice2007のバージョンのOutlookにはRTFBodyプロパティは無いようなのですが。
http://www.dotup.org/uploda/www.dotup.org1130546.png

でもOffice2007でもカレンダーの本文のある部分に手動で装飾ができるのでマクロでもできるはずだと思います。
どうすればいいのでしょうか?
0268デフォルトの名無しさん2017/01/21(土) 13:22:18.60ID:JwMYXArD
どっちかというと.NETがおかしいんだけどね
全部用意してやるからActiveXやWin32APIを使うなと言わんばかりの不便さ
言語の内部にない機能を外から持ってくるからオープン系と言うんだと思ってたけど
0269デフォルトの名無しさん2017/01/21(土) 13:57:11.70ID:1cIKmUbZ
>>267
う〜ん、ないなら無理っぽいかと
> でもOffice2007でもカレンダーの本文のある部分に手動で装飾ができるのでマクロでもできるはずだと思います。
アプリの機能の全てをマクロでサポートしてるとは限らんし...
0270デフォルトの名無しさん2017/01/22(日) 18:24:33.89ID:dK0oU8+I
初心者の質問ですみません。
仕事で各部署から大量に写真が来て、部署毎の名前のフォルダに連番ファイルで保存しているのですが、
フォルダの最後のファイルだけピックアップする必要ができてしまいどうにも困っています。
Excelのマクロを使えばどうにかなりそうだとは思うのですが、どなたかお知恵を貸していただけないでしょうか?

例)
c:\営業一課\営業一課00001.jpg 〜営業一課00060.jpg
c:\資材課\資材課00001.jpg 〜 資材課00020.jpg
c:\物流課\物流課00001.jpg 〜 物流課00120.jpg

等、ファイル名は[フォルダ名 + 5桁の数字]。5桁の数字は00001から始まって、終わりの数字(ファイル数)はフォルダ毎にバラバラの状態です。

この状態で、↑の例で言うなら営業一課00060.jpgと資材課00020.jpgと物流課00120.jpgを、
c:\最後\ のフォルダに切り取り貼り付けしたいのですが…

マクロ限定では無く、何かのソフトの組み合わせで実現できるというならそれでも構いません。
フォルダ数が10や100なら力任せにファイラーで移動するのですが、現在50000くらいフォルダ数があって、一日200-300くらいの勢いで増えてます…
0271デフォルトの名無しさん2017/01/22(日) 18:45:46.18ID:mco4N0ih
ファイル操作や並び替えはPowershellの方が簡単だよ
0272デフォルトの名無しさん2017/01/22(日) 18:56:47.41ID:PXtZmaP4
>>270
切り取り貼り付けで馬鹿だとよくわかる
ロジック的にも間違いを引き起こすようなロジックしか考えられないし

馬鹿確定
0273デフォルトの名無しさん2017/01/22(日) 19:13:35.66ID:K9IWtO+t
初心者と一々断らなくて良いよ、と言おうと思ったら、
>>272みたいな上級者気取りが現れるから仕方ないか・・

これを参考にして
http://officetanaka.net/excel/vba/file/file07.htm
0274デフォルトの名無しさん2017/01/22(日) 19:49:33.32ID:YJLP3OgH
>>272
$work =
0275デフォルトの名無しさん2017/01/22(日) 20:32:29.70ID:b7Xc1TTL
>>270
vbaでもいいけど
普通にvbscriptみたいなものでも簡単にできるよ
vbs フォルダ 検索
でぐぐったらどうでしょう
0276デフォルトの名無しさん2017/01/22(日) 20:54:41.71ID:XKc56KzG
>>272
うるせえぞ馬鹿
真面目に質問してる人になんだそりゃ。
0277デフォルトの名無しさん2017/01/22(日) 21:01:31.37ID:xqqm72Ga
>>270
各フォルダには画像以外のファイルも入ってるかどうか
拡張子は小文字のjpgだけか、JPGやjpegも混ざってるかどうか

それだけ教えて
0278デフォルトの名無しさん2017/01/22(日) 21:10:37.07ID:PXtZmaP4
馬鹿はファイルのコピーや移動の仕方でわかるんだよな。
馬鹿のくせに間違いを絶対にしない前提の方法で話しを進めるのが馬鹿たる所以。
0279デフォルトの名無しさん2017/01/22(日) 21:26:21.62ID:o6OZ0Umu
( ´_ゝ`)フーン
0280デフォルトの名無しさん2017/01/22(日) 21:41:22.76ID:uPXBwAbd
>>277
拡張子がなんにしても全パターン網羅してリプレイスして番号で最大値とって取得やんな?
0281デフォルトの名無しさん2017/01/22(日) 21:43:59.78ID:fxkBMvoQ
>>278
あ、ごめん
即座に罵倒するようなヤツとは関わらないって決めてるので誰にも迷惑のかからないところで勝手に盛り上がっててください
0282デフォルトの名無しさん2017/01/22(日) 22:05:16.58ID:5pcXYXa+
病気なんだよ
02832702017/01/22(日) 22:11:46.10ID:dK0oU8+I
>>277
フォルダの中身は小文字の.jpgのみです。

>>273
参照のページで、ファイル名一覧が取得できるまでは解るのですが、
それを取得してどうすれば良いのかが解りませぬ。
0284デフォルトの名無しさん2017/01/22(日) 22:21:58.08ID:K9IWtO+t
>>278
知らないから馬鹿じゃないだろ
>>270を「馬鹿のくせに間違いを絶対にしない前提の方法で話しを進める」と決めつけるのが馬鹿

>>283
一覧をソートすれば取得できる

というオレもVBA初心者ゆえ、正確に答える自信がないので、概念だけでスマンw
0285デフォルトの名無しさん2017/01/22(日) 22:30:17.75ID:l2Nz+a62
>>270
>c:\最後\ のフォルダに切り取り貼り付けしたいのですが

移動(元フォルダからは消える)するより
コピーするか ショートカット作成した方が良いんじゃないかと思うのだが
どうよ
後 実際の各フォルダは c:\ の直下なの?
0286デフォルトの名無しさん2017/01/22(日) 23:05:08.45ID:4Incfzmy
>>270
スレ違いだけどPowerShellで

$folder_from = "C:\"
$folder_to = "C:\最後\"

foreach($child_folder in ls -Path $folder_from | ?{ $_.Name -match '.+課$' })
{
$regex = '^' + $child_folder.Name + '\d+\.jpg$'
$last_item = ls -Path $child_folder | ?{ $_.Name -match $regex }| select -Last 1
mv $last_item.FullName $folder_to
}
0287デフォルトの名無しさん2017/01/22(日) 23:12:38.88ID:qK5fG7bF
できた
ちゃんと動くかどうかテストしてないんでバックアップとってな

Sub CopyLastFile()
  TargetFolder = "C:\"  ' 処理するフォルダ
  If Right(TargetFolder, 1) <> "\" Then TargetFolder = TargetFolder & "\"
  Set Dirs = CreateObject("Scripting.FileSystemObject").GetFolder(TargetFolder).SubFolders
  For Each CurrentFolder In Dirs
    If CurrentFolder.Name <> "最後" And CurrentFolder.Name <> "System Volume Information" Then
      MaxName = ""
      FName = Dir(TargetFolder & CurrentFolder.Name & "\*.jpg")
      Do While FName <> ""
        If FName > MaxName Then MaxName = FName
        FName = Dir()
      Loop
      If MaxName <> "" Then  ' ファイルを移動
        Name TargetFolder & CurrentFolder.Name & "\" & MaxName As TargetFolder & "最後" & "\" & MaxName
      End If
    End If
  Next
End Sub
0288デフォルトの名無しさん2017/01/22(日) 23:43:51.53ID:Wwv6/pAu
汚ねぇ言語だな
何がなんだかさっぱり
02892702017/01/23(月) 00:41:20.21ID:U6yzB2m0
>>268
>>287
お手数掛けてしまい申し訳ありませんが、どちらも動きませんでした…
「ファイルが見つかりません」とエラーメッセージが出てしまいます。
0290デフォルトの名無しさん2017/01/23(月) 00:55:01.54ID:ST2LRMx2
しょせん馬鹿には無理なんだよ
0291デフォルトの名無しさん2017/01/23(月) 01:08:05.39ID:ayLfxszv
フォルダの場所はあくまで例という事なので
適切に弄った上で見つからないのかな
0292デフォルトの名無しさん2017/01/23(月) 01:55:52.05ID:sOYRMmGw
vbaのソースをハイライトしてくれて公開できるサイトってありますか?
0293デフォルトの名無しさん2017/01/23(月) 04:46:02.80ID:WP/2JyPJ
>>287を試したけど、ちゃんと動いたぜ
http://i.imgur.com/wCOzgx4.png

もちろん最初のフォルダ定義は書き換えたよな?
そこ以外はフォルダ名もファイル名もディスクから読み取ってるんだから、見つからないわけがないんだが
0294デフォルトの名無しさん2017/01/23(月) 04:51:29.77ID:WP/2JyPJ
>>292
VBAに対応したサイトは見たことないけど、
RangeとかCellsがハイライトされないと困る用途でなければVBを選択してみたら?
0295デフォルトの名無しさん2017/01/23(月) 04:53:06.02ID:WP/2JyPJ
あ、あと「最後」フォルダも手動で作っとかないとだめだよ
02962702017/01/23(月) 06:51:27.51ID:U6yzB2m0
>>287
>>293
別のサンプルで試したところ、きちんと動作いたしました。
最初に用意したサンプルの部署の名前にシステム外?の漢字が使われていた為に失敗していたようです。
(ひらがなの「が」が、「か+゛」になっていたという。Mac←→Winの文字コードの違いの問題?)

そちらはなんとかなるので、これで問題解決です。
皆様方、ありがとうございました。
0297デフォルトの名無しさん2017/01/23(月) 08:12:32.04ID:sOYRMmGw
>>294
なるほど! ありがとうございましたm(__)m
0298デフォルトの名無しさん2017/01/23(月) 12:58:13.38ID:Z+1qxvba
>>296
utf-8 は、濁点半濁点を分離しない

一方、utf-8-mac は、濁点半濁点を分離して、別の文字とする
0299デフォルトの名無しさん2017/01/23(月) 15:48:10.56ID:r+jEG7u3
質問です

HTMLで要素を特定するのが難しい複雑なWEB GUIを自動操作したく、キーボード入力のみ(TAB、ENTER、文字入力の組み合わせ)で原始的に操作すればいいんじゃないかと考えました
このような方法は効果的ですか?
またIE画面の取得やSendKey、busy状態の判定などはurlさえあれば可能なのでしょうか?
0300デフォルトの名無しさん2017/01/23(月) 16:25:14.53ID:dyeHk94Y
>>299
> HTMLで要素を特定するのが難しい複雑なWEB GUIを自動操作したく、キーボード入力のみ(TAB、ENTER、文字入力の組み合わせ)で原始的に操作すればいいんじゃないかと考えました
> このような方法は効果的ですか?
「効果的」の意味が良くわからないが、確実性に欠けるので実装方法としては下策。
0301デフォルトの名無しさん2017/01/23(月) 18:23:23.13ID:iz5/M2l3
>>299
何故HTMLで要素を特定するのが難しいのか?
あとそれが難しいのにキーボード操作なら目的の操作を出来るのは何故か?
効果的かどうかどうやって判断するのか?
0302デフォルトの名無しさん2017/01/24(火) 09:50:42.62ID:Q9g90nxH
>>300
>>301
回答ありがとうございます
効果的か、というのは他に楽ないい選択があるか、という意味です
初心者なので要素の取得に時間がかかり、単純なWEBページならなんとか操作できるのでが
ジャバの記述でソースコードがぐちゃぐちゃになっており要素の取得がしんどいです
実際のie操作を記録してコード組んでくれるソフトとか無いんですかね
0303デフォルトの名無しさん2017/01/24(火) 11:44:50.88ID:tZ08PDgQ
>>302
UWSC
0304デフォルトの名無しさん2017/01/24(火) 12:51:19.59ID:2vJhPAHl
>>302
ブラウザでF12キーとか押してみたら
0305デフォルトの名無しさん2017/01/25(水) 01:50:28.88ID:mqe1OJqx
何かカッコイイ名前つけようぜ。
コスモ関数とか。
Subを廃止にして、Zamとかどうよ。
Ifも古くなってきたから、Izuとか。
0306デフォルトの名無しさん2017/01/25(水) 04:02:53.45ID:IbVYSEZD
マクロじゃなくて馬鹿専用とかな
0307デフォルトの名無しさん2017/01/25(水) 15:39:29.51ID:Lt8lAI1l
かなりの初心者です。
エクセルに画像挿入する際の質問です。
エクセルに大量の画像を挿入したいのですが、ファイルが重たくなりすぎるためリン
ク挿入を考えています。
ファイルをCDにやいて先方に渡したいので、絶対パスではなく相対パスでの画像挿入
がしたいです。
エクセルファイルと大量の画像データは同じフォルダ内にあります。
Insertで挿入してもaddpictureで挿入してもメディアにフォルダごと移動したとたん
リンク切れになるので困っています。
よろしくお願いします。
0308デフォルトの名無しさん2017/01/25(水) 17:01:41.71ID:IbVYSEZD
>>307
なぜhtmlにしないの?
0309デフォルトの名無しさん2017/01/25(水) 17:35:49.92ID:ekWp7cd2
数値の変化する1つのセルの最大値を他のせルに記録したいのです。
例えば B5 セルの値が、15 10 23 5
と変化したら、隣のC5のセルに、 23 と表示させたいのです。

エクセルの関数になるのかもしれませんが、ググってもどう調べても分かりません。

皆さま何卒宜しくお願い致します。
0310デフォルトの名無しさん2017/01/25(水) 17:53:01.54ID:vlkVtG3b
>>309
その要件は >>307 のどこにあたるの?
0311デフォルトの名無しさん2017/01/25(水) 18:08:36.73ID:ncsczmSY
>>307
htmlとして保存とかできなかったっけ
0312デフォルトの名無しさん2017/01/25(水) 19:35:21.34ID:mqe1OJqx
>>307
リンク切れになる理由はわからんけど、
ファイルを開いた時に、リンク解除→再リンクすればいいんじゃないの?
0313デフォルトの名無しさん2017/01/25(水) 21:13:17.06ID:CnexM6ZX
>>310
えっ?
0314デフォルトの名無しさん2017/01/25(水) 21:38:36.75ID:eyqKHvfT
>>309
対象のセルがひとつだったらグローバル変数を使って簡単にできる

Private max__ As Double

Function getMax(ByVal x As Double) As Double
If max__ < x Then max__ = x
getMax = max__
End Function

セルC5に
= getMax(B5)
と入れときゃいい
0315デフォルトの名無しさん2017/01/25(水) 21:41:05.43ID:eyqKHvfT
初期値がゼロだから、

Sub resetMax()
 max__ = -1.79769313486231E308
End Sub

とかが必要かもしれない
0316デフォルトの名無しさん 転載ダメ©2ch.net2017/01/25(水) 22:18:36.62ID:eU88gsvp

板復帰(OK!:Gather .dat file OK:moving DAT 540 -> 537:Get subject.txt OK:Check subject.txt 540 -> 539:Overwrite OK)2.94, 2.24, 1.93
age subject:539 dat:537 rebuild OK!
0317デフォルトの名無しさん2017/01/25(水) 22:49:29.44ID:CnexM6ZX
>>315
要らないです
0318デフォルトの名無しさん2017/01/25(水) 22:54:53.11ID:eyqKHvfT
>>317
ほう、なぜ?
0319デフォルトの名無しさん2017/01/25(水) 23:05:36.18ID:AeM3WiQW
ほうなぜ
0320デフォルトの名無しさん2017/01/26(木) 01:27:18.15ID:lerVaKyH
ほぜなう、ななほなう、ほぜぜほ、ううう、うう、ななほ、ななほ、うほうほうほほ、ぜうほなーほ
0321デフォルトの名無しさん2017/01/26(木) 08:19:49.57ID:ZDwsAfth
>>318
一回目の値取り込めは必須だから。
この場合は15は必ず最大値。
0322デフォルトの名無しさん2017/01/26(木) 08:27:33.82ID:GoiJIG7T
>>321
B5が全部マイナスのケースは?
0323デフォルトの名無しさん2017/01/26(木) 09:20:45.29ID:ZDwsAfth
>>322
あーその場合があったか!
いやー失敬失敬






な訳ない。
一回目は絶対最大値なんです。
この場合正負は、なんの意味がない。
0324デフォルトの名無しさん2017/01/26(木) 09:50:34.79ID:8Qm9FYvM
>>323
君が想定してるコードは >>314 なの それとも別のコード?
0325デフォルトの名無しさん2017/01/26(木) 10:02:08.25ID:mPWEbfd1
>>323
>>314のグローバル変数はDouble型だから何もしないと初期値は0.0だ。
これが何を意味するかはわかるな?
0326デフォルトの名無しさん2017/01/26(木) 10:09:43.56ID:oMPl1Srs
>>323
これは恥ずかしい
0327デフォルトの名無しさん2017/01/26(木) 11:12:41.51ID:KR9GJXBK
>>324
>>325
>>326
314は考慮してない。
315のように型考慮とか手間。
0328デフォルトの名無しさん2017/01/26(木) 11:17:55.57ID:SSl970Br
>>327
そもそも会話に参加してなかったってことは理解した
0329デフォルトの名無しさん2017/01/26(木) 11:28:23.97ID:mPWEbfd1
>>327
型考慮が手間?
じゃあVariantにすればいい。Emptyであれば未初期化状態とわかるからそこで分岐できる。

そもそもなんのデータなんだ?
気温とかで最高気温をとりたいというならずっとマイナス値で推移することもあるし、
株価とかの最高値をみたいというなら正数だけ考えればいいし。
0330デフォルトの名無しさん2017/01/26(木) 11:52:33.91ID:KR9GJXBK
>>328
正しい
>>329
観点そこじゃねーよ
イチイチ型の下限をハードコーディングかよ。

何にも思わないんだw
0331デフォルトの名無しさん2017/01/26(木) 12:00:40.09ID:mPWEbfd1
>>330
使い捨ての例示だろ?
それで十分さ
0332デフォルトの名無しさん2017/01/26(木) 12:04:08.41ID:mPWEbfd1
意図明確なハードコーディングなどなんら問題ないという立場。
型ごとの下限値とか一日の秒数とか、文脈で明かでかつ誰でも知っている値は本番プログラムでもなきゃそのまま例示するさ。
0333デフォルトの名無しさん2017/01/26(木) 12:07:50.47ID:ZDwsAfth
>>331
そうかもね

ただ>>309が不憫でよ。
いきなり>>314だろ。
>>315で結びが『かもしれない』

まじがんばれ>>309
0334デフォルトの名無しさん2017/01/26(木) 12:17:36.90ID:mPWEbfd1
>>333
じゃあ別な方法を示せばいい

そもそも「正負がなんの意味もない」ってどういうことだ?説明しろ。
0335デフォルトの名無しさん2017/01/26(木) 12:31:36.89ID:SSl970Br
この話題については
やりようによってはグローバル変数って不要じゃないかな?
って思う
0336デフォルトの名無しさん2017/01/26(木) 12:39:56.63ID:oMPl1Srs
こういうの考えてたんじゃね?知らんけど
でも>>315に関して「一回目は絶対最大値なんです。正負はなんの意味もない」ってのは意味不明

Private Sub Worksheet_Change(ByVal Target As Range)
  If Intersect(Target, Range("B5")) Is Nothing Then
    Exit Sub
  Else
    Range("C5") = WorksheetFunction.max(Range("B5", "C5"))
  End If
End Sub
0337デフォルトの名無しさん2017/01/26(木) 12:47:28.93ID:ZDwsAfth
>>334
提示コードとは切り離す。
片手落ちの提示コードなら
初期値を型下限にしないと負側は
動かないよ。

最大値の定石算法なら正負は意味ないよ。
だって正しく求まるから。
http://d.hatena.ne.jp/geek-it/touch/20120226/p1
0338デフォルトの名無しさん2017/01/26(木) 12:55:45.77ID:ZDwsAfth
>>336
c5は試行の開始では
どういう状態なんだろうね?
0339デフォルトの名無しさん2017/01/26(木) 12:57:50.00ID:mPWEbfd1
>>337
n[0]とは何で、どうやって取得するのか教えて
0340デフォルトの名無しさん2017/01/26(木) 12:58:02.38ID:oMPl1Srs
>>337
とりあえず馬鹿ってことはわかった
グローバルにカウンタつくってIf count = 1 Then ってやっときゃいいじゃんw
0341デフォルトの名無しさん2017/01/26(木) 13:09:31.18ID:ZDwsAfth
>>339
b5からとるんだよ。

ただ
ほんとに知りたいところそこなの?
これから何を本質的に疑問に思ってる?
0342デフォルトの名無しさん2017/01/26(木) 13:11:07.17ID:ZDwsAfth
>>340
その手段で
どういった目的を達成できるか
説明お願いします。
0343デフォルトの名無しさん2017/01/26(木) 13:16:03.48ID:mPWEbfd1
>>341
B5に初めて値が(たとえば3とする)が代入されたとき、C5にはもちろん3と表示されるべきだが、それをどうやってやるの?
0344デフォルトの名無しさん2017/01/26(木) 13:19:12.95ID:oMPl1Srs
自分でコード書いて提示してみ?
たぶん根本的に意味をわかってない
0345デフォルトの名無しさん2017/01/26(木) 13:22:44.99ID:mPWEbfd1
あっもしかして、初めてB5に値を入れたらそこで「人が」C5に何らかの計算式を入れるとかの運用を考えてる?
0346デフォルトの名無しさん2017/01/26(木) 13:24:08.19ID:oMPl1Srs
なわけねーだろw
だから自分でコード書いてみろって
何を勘違いしてるか自分で気づくだろ
0347デフォルトの名無しさん2017/01/26(木) 13:26:06.34ID:oMPl1Srs
ああ、ZDwsAfthのレスと勘違いしたわすまん
0348デフォルトの名無しさん2017/01/26(木) 13:28:19.88ID:mPWEbfd1
>>347
ドンマイ
0349デフォルトの名無しさん2017/01/26(木) 13:30:55.01ID:ZDwsAfth
>>347
ドンマイ
0350デフォルトの名無しさん2017/01/26(木) 13:33:47.09ID:oMPl1Srs
>>349
すまんな
コードの提示を頼むわ、飯くってくる
0351デフォルトの名無しさん2017/01/26(木) 14:19:03.93ID:5gl79ALu
>>309
Worksheet_Changeとかのイベントで
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim peak, x: peak = "C5": x = "B5"
If Not IsNumeric(Range(x)) Then Exit Sub
If Not IsNumeric(Range(peak)) Then Range(peak) = Range(x)
If Range(peak) < Range(x) Then Range(peak) = Range(x)
End Sub
セルが空でも動く
0352デフォルトの名無しさん2017/01/26(木) 14:25:54.93ID:MANz96Le
>>309
参照設定でMicrosoft Scripting Runtimeを追加して、標準モジュールに以下のコードを記述後、
C5に=showMaxValue(B5)と入力する。

'対象セルの最大値を保存する場所
Dim dic As New Dictionary

Public Function showMaxValue(cell As Range)
  If IsEmpty(cell) Then
    ' 対象セルをクリアしたときにどう振る舞うのかを
    ' 決定する必要があるが、取りあえず何もしない
    Exit Function
  End If
  
  If dic.Exists(cell.Address) Then
    If cell.Value > dic(cell.Address) Then
      dic(cell.Address) = cell.Value
    End If
  Else
    dic.Add cell.Address, cell.Value
  End If

  showMaxValue = dic(cell.Address)
End Function
0353デフォルトの名無しさん2017/01/26(木) 14:57:52.29ID:mPWEbfd1
>>352
なるほど
0354デフォルトの名無しさん2017/01/26(木) 16:21:12.51ID:U3KmvQxt
>>308
>>311
>>312
ご回答どうもありがとうございます。htmlでとは全く思いつかなかったので目から鱗でした。ただ、改ページプレビューでの印刷範囲などがhtmlだとうまくできないです。
また、絶対参照になってしまうのはexcel2013以降の仕様のようなことが書いてあるサイトを見つけました。
http://www.h3.dion.ne.jp/~sakatsu/Excel_Tips21.htm#S9
結局ファイルを分けて実ファイルを挿入する方法にします。
どうもありがとうございました。
0355デフォルトの名無しさん2017/01/26(木) 18:30:34.79ID:Cqc92u/s
セガのテトリスをエクセルで作ってみた
https://www.youtube.com/watch?v=CTotYTOpR9E
0356デフォルトの名無しさん2017/01/26(木) 19:37:07.62ID:3eEczd4r
excelの神経衰弱 https://youtu.be/TAzqqZgVEa4
0357デフォルトの名無しさん2017/01/26(木) 19:56:43.48ID:GoiJIG7T
>>352
それって複数のセルを扱えるようにしてるだけで初期値については >>329 の Variant と本質的には一緒だよね
0358デフォルトの名無しさん2017/01/26(木) 20:03:13.82ID:3C+35NwQ
showMaxValueてwwwww
なにをどうshowしてんだよw関数名で嘘つくとかサイテーだなw
0359デフォルトの名無しさん2017/01/26(木) 20:10:27.05ID:q3eaEqve
>>357
>>329のまま複数のセルで関数を使うと想定外の結果になるんだから>>352のは優れている
■ このスレッドは過去ログ倉庫に格納されています