Excel総合相談所 130

▼━質問テンプレ (出来れば使ってね) ━━━
【1 OSの種類         .】 Windows**
【2 Excelのバージョン   】 Excel**
【3 VBAが使えるか    .】 はい・いいえ
【4 VBAでの回答の可否】 可・否

▼━関連スレ━━━━━━━━━━━━

前スレ
Excel総合相談所 129
https://find.5ch.net/search?q=excel

Excel VBA 質問スレ Part51
https://find.5ch.net/search?q=excel+vba

【質問不可】Excel総合相談所スレの雑談・議論スレ4
https://find.5ch.net/search?q=excel+%E3%80%80%E7%9B%B8%E8%AB%87%E6%89%80

364名無しさん@そうだ選挙にいこう2018/02/17(土) 22:18:54.81
>>363
数式組んでもいいんだけど、
その手間より目視の方が早いパターンのような気がする。なんとなく

365名無しさん@そうだ選挙にいこう2018/02/17(土) 23:13:24.62
=hyperlink("url","■")
みたいにして、クリックする場所を示したりするけど、
セルの中のどこクリックしてもリンクになるような、セルの幅変更に追従するような
リンクの張り方ってできる?
urlは別のセルの内容から計算するので固定にはできない

366名無しさん@そうだ選挙にいこう2018/02/17(土) 23:23:43.49
>>365
無理
文字列をクリックさせる方式だと、どうしてもセルの壁と文字の間に隙間ができる
マクロを使ってセルの選択から処理させるしかない

367名無しさん@そうだ選挙にいこう2018/02/17(土) 23:30:20.63
>>365
フォントを巨大にするか、
フォームのボタンでも貼り付けるしか無いんじゃないかな

368名無しさん@そうだ選挙にいこう2018/02/18(日) 10:32:34.81
>>344
フィルターにそこまでの機能はない
関数で組めばリストの抽出は可能

369名無しさん@そうだ選挙にいこう2018/02/18(日) 11:01:54.19
貼り付けた画像にもリンク貼れなかったっけ

370名無しさん@そうだ選挙にいこう2018/02/18(日) 12:02:56.65
元々は、「ハイパーリンクを開く」のメニューが =HYPERLINKのセルに対して出てこないから、
マウスでクリックする羽目になってるんだけど

=HYPERLINKのリンク先をキーボードから開く方法は無い?

371名無しさん@そうだ選挙にいこう2018/02/19(月) 10:34:13.02
エクセル2016で縦撮りの写真を貼るときなんだけど
撮る人によって右手を上にする人と左手を上にする人がいて
それをリサイズして写真を縦に起こしてから貼るんだけど
写真の回転補助がそれぞれ右と左に出るんだよね
貼るときはいいんだけど図の変更で写真を差し替えるときこの方向が違う写真を差し替えると上下逆に出てしまう
2010の時はそんなことなかったのに

372名無しさん@そうだ選挙にいこう2018/02/19(月) 12:05:59.91
>>371
でっていう

373名無しさん@そうだ選挙にいこう2018/02/19(月) 12:49:30.26
>>371
今までと同じデジカメで撮った写真ならば(Exifの仕様が同じなら)
2016の写真のExifの読み込み方法が変わったかバグだろうね

374名無しさん@そうだ選挙にいこう2018/02/19(月) 15:24:00.62
win10ってそもそもexifを読み込んで写真を勝手に縦にするんだよな
たまに横の写真が縦だったりするわ
で、付属の写真アプリで開いても縦なんだけどフリーソフトとかで開くと横だったりする
フォルダ内で回転させたのとフリーソフト等で回転させた向きが合わずにフォルダ内がカオスになったことあった

375名無しさん@そうだ選挙にいこう2018/02/19(月) 21:06:13.92
写真撮影時に写真の縦横がExifに記録されないデジカメもあるしね
そんな画像ファイルはExifデータを修正しておかないと後々面倒だ

まあ切り分けていかないと原因は判りにくい

376名無しさん@そうだ選挙にいこう2018/02/20(火) 07:37:57.46
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2013
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

指定したシートを、入れたい文字でPDF形式で保存したいと考えています。
具体的には、a-見積書-20180220-20180228.pdfのような感じで
aは参照するセルの内容によって可変。
20180220と20180228は参照するセルによって可変で、当該セルは和暦表示(例:平成30年2月20日)としています。

また、保存先は作業ブックと同じディレクトリをデフォルトととし、
重複する名前のファイルがあった場合の確認ダイアログを表示させたいと考えています。

ExportAsFixedFormat Type:=xlTypePDF、Application.DisplayAlertsの使用と
FilenameをString宣言するまでは、調べてわかったのですがファイル名の日付への反映がうまくいきません

よろしくお願いします。

377名無しさん@そうだ選挙にいこう2018/02/20(火) 22:29:06.63
>>376
こんなんでいけるんじゃない

Sub Macro1()
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
ThisWorkbook.Path & Format(Cells(1, 1), "yyyymmdd"), Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
True
End Sub

378名無しさん@そうだ選挙にいこう2018/02/20(火) 22:29:26.01
最近は-pdfの保存がデフォルトで用意されてるのね
便利

379名無しさん@そうだ選挙にいこう2018/02/20(火) 23:41:43.37
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2016
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
オートフィルタで絞ったまま可視セルのみでセル移動をし、さらに移動した可視セルに入力した内容を可視セルの一番下までペーストするため引っ張りたい

オートフィルタで絞る列はもちろんデータが入ってますが、他に空白の列がありその列の可視セルだけにデータを入力しそのまま下までペーストしたいのがやりたいことです

普通にoffsetでセル移動すると非表示セルへ移動しデータを記載してしまいます
検索しましたが解決できていません

宜しくお願いします

380名無しさん@そうだ選挙にいこう2018/02/20(火) 23:44:14.35
>>379
vbaにおいてのことのみ書きました
もちろん手入力時は上記内容は簡単にできますがvbaで実現したいです

381名無しさん@そうだ選挙にいこう2018/02/21(水) 07:40:30.60
手作業でできるならマクロの記録するだけでは

382名無しさん@そうだ選挙にいこう2018/02/21(水) 18:10:20.08
手作業だと出来ても、それを記録したマクロはダメってこともあるよね

俺は印刷設定の改ページを変更したくて、
それをマクロの記録でコードにしたけど、
そのコードを実行しても改ページは変更できなかった

具体的な記録内容としては
ファイル開いて、改ページプレビューにして、改ページ位置の点線を動かした
でも手作業では上手くいくのに、そのマクロでは何にも変わらなかった

383名無しさん@そうだ選挙にいこう2018/02/21(水) 21:31:01.61
>>379
どこまで自動化するのかわからないけど、オートフィルタしてあると仮定して
Dim ftable As Range 'オートフィルタの選択範囲
Dim target As Range 'それぞれの抽出セル

'A1にオートフィルタデータがあるとして
Set ftable = Range("A1").CurrentRegion.SpecialCells(xlCellTypeVisible)

For Each target In ftable
'この辺で好きにしたらいいと思う
Debug.Print "セル位置" & target.Address
Next target

3843792018/02/21(水) 22:28:59.06
offsetで解決できました
ありがとうございました

385ほんとの3792018/02/21(水) 23:00:25.66
>>382,>>383
レスくださった方々ありがとうございます。
>>384が379になりすまして書いてますが自分が>>379を書いた者です

>>383を試しまたレスするようにします
ありがとうございます

>>381
記録だと具体的なセル番地を読み込んでしまうだけでした。。

386ほんとの3792018/02/21(水) 23:21:10.74
>>383
まだ試す前ですが、入力する値はA1には元々入っている…ことはなく、
例えばオートフィルタして1行目はそれぞれカラムの項目名として
A2,A3が非表示となりA4が1番上にあるとするとしたら、A4にバナナと記載しそれをオートフィルで下まで引っ張る
でまずバナナと入力するセルをA4にしたいのに非表示のA2になってしまうのだ!という事なのです。。。

387ほんとの3792018/02/22(木) 06:45:35.73
>>383
>どこまで自動化するのかわからないけど、
>オートフィルタしてあると仮定して

前後は他にもあるけど、オートフィルタ設定、絞る、絞った可視セルに単語記載→下まで引っ張る
このオートフィルタ絞り記載引っ張るの一連を12種類繰り返すので自動化したいという訳なのです

388ほんとの3792018/02/22(木) 06:47:20.42
うぉおおおおおおおおおおおおおおおおおおおおおおおおおおおおおお

389名無しさん@そうだ選挙にいこう2018/02/22(木) 20:36:11.85
shift-spaceで1行選択して、
ctrl-d で上の行をコピー

をすると、行コピーとか挿入とかいろいろ苦労してやらないといけない、
数式や書式をキープしたまま行が増やせて便利

390名無しさん@そうだ選挙にいこう2018/02/22(木) 22:15:01.97
>>389
それは普通にみんな使ってる
それをVBAで書いてあげればいい

391名無しさん@そうだ選挙にいこう2018/02/23(金) 10:32:36.86
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2013
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
シート1に数字の表があり、シート2でシート1のA5+A8+A10の計算をしているとき、
シート3で同じくシート1のB5+B8+B10のように列をずらして計算させたいのですが、数が多く手作業では負担が大きいため関数で解決できるとありがたいです。
offsetとindirectの組み合わせでできないか試してみたのですがやり方がよく分からず断念しました
宜しくお願いします

392名無しさん@そうだ選挙にいこう2018/02/23(金) 10:50:18.79
391の追記ですが、
シート1のデータは毎回変化するので予めセル指定することができないため、
1か所に入力したものを元に計算できないかと思い質問させていただきました

393名無しさん@そうだ選挙にいこう2018/02/23(金) 12:46:29.94
相対指定、絶対指定って聞いたことない?

394名無しさん@そうだ選挙にいこう2018/02/23(金) 13:52:33.81
>>393
違うシートの同じセルに列をずらして計算させたいのですが相対指定でずらせるものなのでしょうか?

395名無しさん@そうだ選挙にいこう2018/02/23(金) 18:19:48.26
>>391
Sheet1が左端にあって、Sheet1のB3:K12に10行10列のデータがあり
M列に5, 8, 10行目のデータを抽出するために作業列{0;0;0;0;1;0;0;1;0;1} を加える

=SUM(OFFSET(Sheet1!$B$3, 0, SHEET()-2, 10, 1)*Sheet1!$M$3:$M$12)
と入力して shift + ctrl + enter

シートが目的の順に並んでいる限り目的行の和が得られるけど
正直お勧めしない

396名無しさん@そうだ選挙にいこう2018/02/23(金) 21:34:52.32
>>391
もっと具体的にどういう構成なのか教えて
例えば
https://dotup.org/uploda/dotup.org1470913.txt
みたいに、関数で式を生成するという手もあるけど

コード直接書いたらエラーで弾かれたのでアップロードにしている

397名無しさん@そうだ選挙にいこう2018/02/23(金) 22:25:23.08
>>394
元の計算式の入ったシートをコピーして
ズラす分だけ行削除か挿入で調整。
必要なら後から書式のみコピーで整えて終わり。

398名無しさん@そうだ選挙にいこう2018/02/23(金) 22:33:28.23
一度作って終わりでいいのかメンテを続ける必要があるのかだな

ちゃんとしたデータ構造になってれば、計算も楽なのが普通
計算が大変なのはちゃんとしてないからで、それでも一度限りなら残業して仕上げればいいけど、
その後誰かが使うなら、その人が可哀想

399名無しさん@そうだ選挙にいこう2018/02/24(土) 09:23:40.26
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

年月日を入力したところ全く異なる生年月日に変換されてしまいます
オリジナルの年月日より数十年前の年月日になっています(月日も異なる)
こうなる理由とオリジナルに戻す方法をご存知でしたらお願いします

400名無しさん@そうだ選挙にいこう2018/02/24(土) 09:28:36.08
セルの表示形式を日付から標準に戻して、何が出るか

401名無しさん@そうだ選挙にいこう2018/02/24(土) 10:25:50.87
>>399
具体例を一つ書いてみて
キーボードから「18/2」と入力すると、「30年2月1日」と表示される、みたいな感じで

402名無しさん@そうだ選挙にいこう2018/02/24(土) 10:26:39.77
>>400
数字の羅列(シリアル値?)です

403名無しさん@そうだ選挙にいこう2018/02/24(土) 10:46:57.20
>>401
1975/6/6と入力されたセルは1941/9/16と表示されます

既に変換された生年月日が入力されているため
オリジナルの年月日に直したいのです

404名無しさん@そうだ選挙にいこう2018/02/24(土) 11:06:53.63
>>403
原因や法則がわからんことには直しようがないんだよなあ

そのブックを作ったのは誰で、その時に使ったExcelのバージョンはわかる?
日本以外の国で作られた物だとカレンダーの計算がまったく違ってることもあるんだけど

405名無しさん@そうだ選挙にいこう2018/02/24(土) 11:09:37.90
>>402
そのセルには数式は入ってない?
そのブックにマクロは登録されてない?

本当にシリアル値になってるかどうか確認したいので、どれか一つ、日付とシリアル値の数字を正確に書き写して

406名無しさん@そうだ選挙にいこう2018/02/24(土) 11:23:45.57
>>404
ブックを作ったのは他部署の人
なのでバージョンも同じ2010だと思います

>>405
1975/6/6は1941/9/16と表示されますが
書式設定を標準にすると15235になります

407名無しさん@そうだ選挙にいこう2018/02/24(土) 11:24:32.79
あと数式はなし、マクロも組まれていません

408名無しさん@そうだ選挙にいこう2018/02/24(土) 11:26:23.36
15235って事は1941/9/16が入ってる
1975/6/6と入力していないはず

409名無しさん@そうだ選挙にいこう2018/02/24(土) 11:30:22.78
>>408
他部署の人間の話では197566と入力したらしいんです
なのでどうなっているのかと

410名無しさん@そうだ選挙にいこう2018/02/24(土) 12:01:47.68
197566と入れると2440/11/29になるけどね

411名無しさん@そうだ選挙にいこう2018/02/24(土) 12:35:58.31
409
それって1975/6/6って意味じゃなくて、単純に6桁の数字を入れたら勝手に日付に変わったってこと?
まだ法則が見えてこない

412名無しさん@そうだ選挙にいこう2018/02/24(土) 13:28:25.32
Bookにマクロなくても他にマクロが在ったんだろうな

413名無しさん@そうだ選挙にいこう2018/02/24(土) 13:59:21.80
空のセルで ctrl-; を押して今日の日付を入れて、
表示形式を標準にしたら 43155 になるのかがまず怪しいな

414名無しさん@そうだ選挙にいこう2018/02/24(土) 16:25:44.63
>>409
無い
恐らく書式設定が日付のところに
19756辺りを打って、シリアル値が日付に変換されたのだろう

1941/9/16も間違っているはず
19756だと1954/2/1になるからこの辺の日付だろう

新着レスの表示
レスを投稿する