5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

Excel総合相談所 92

1 :名無しさん@そうだ選挙にいこう:2010/05/24(月) 19:11:03
▼━ 質問のしかた ━━━━━━━━━━━━━━━━━━━━
★1 質問するときは環境や条件はきちんと書いてね。情報後出しはダメ。
★2 要望は具体例や図を使って明確かつ具体的に。
★3 質問前に>>2-20あたりの注意書きやQ&Aを必ず読むこと。
★4 質問テンプレ(雛形)は必須じゃないけど、
   OSやExcelのバージョン、VBAの可否など(下記テンプレ1〜4の情報)は必須情報。

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

※【4】は、VBAはわからないけどコード書いてくれるならVBAでもいいって場合は「可」
  VBAを使うのは避けたいって場合は「否」にしましょう。丸投げする場合は、必要に応じてブックをアップすること。

※【5】は、あなたがGoogleやヘルプで検索した際に使ったキーワードを書いてください。
  まだ検索してないなら、質問の前にGoogleやヘルプで検索してみてください。
  ttp://www.google.co.jp/

前スレ
Excel総合相談所 91
http://pc11.2ch.net/test/read.cgi/bsoft/1270542226/

2 :名無しさん@そうだ選挙にいこう:2010/05/24(月) 19:34:49
▼━質問時の注意・決まり事━━━━━━━━━━━━━━━━━━━━
・1 現行スレ内で既出の質問が無いか、ページ内検索をしよう。(Ctrl+F)
・2 図やコードを書く場合、TABや連続する半角スペースは無視されるので注意
・3 VBAコードを貼る場合は、部分的に伏せたり省略したりせずに全て貼りましょう。何レス使っても構いません。
・4 2回目以降の質問では名前欄に初回質問の番号を入れよう。
・5 回答内容でわからない部分があっても、すぐに聞き返さずにヘルプやGoogleなどで検索しましょう。
・6 バグ・動作上の不都合・仕様に関する質問などはマイクロソフトのサポートを受けましょう。
  ここは技術的な質問のみで。
・7 VBAはプログラム言語のVisualBasic(6以前)に近い処理が可能で Excelに関係ないことも出来ます。
  Excelの操作に関係ない部分は、スレ違いなのでここで聞かずにVB言語やAPI、COMについて自分で勉強し、
  どうしてもわからない部分はVBスレやAPIスレなどの該当スレで質問しましょう。
  但し向こうはプログラマのスレなので、構文規則などの最低限の事は覚えてから質問しましょう。
  ここみたいに丸投げはダメですよ。
・8 うまくいかなかったにしても自分でやってみたこと(組んだ数式やコード)は書きましょう。
  例えエラーになる式やコードでも、何をやりたいのかを的確に把握する手がかりになります。
  その上で、どううまくいかないのかを具体的に書きましょう。
  エラーが出るなら、何処でどういうエラーが出るのか、
  想定外の結果が出るなら、条件と想定上の結果、実際の結果などを詳しく書いてください。
・9 マルチはダメ。一度マルチしたら、謝っても他のスレの質問を取り下げても回答は得られないと思ってください。
・A テキストボックス(エディトボックス)、コンボボックス(ドロップダウンリスト)、リストボックス、コマンドボタン、
  チェックボックス、オプションボタン(ラジオボタン)、スピンボタン、スクロールバー、等の質問をするときは、
  ユーザーフォーム、コントロールオブジェクト、フォームオブジェクトのどれなのかを必ず書くこと。
・B 書籍や解説サイトの紹介以来はスレ以外。ここは技術的な質問のみで。


3 :名無しさん@そうだ選挙にいこう:2010/05/24(月) 19:37:06
★ルールを無視すると…
 >>1-2あたりのルールに従うか否かは自由だけど、従わないと以下のような不利益があるよ

 ★1.マルチをしてしまったら…
 A.謝っても他での質問を取り下げても、以後その質問に対する回答は付かない物と思ってください。
   それが嫌なら初めからマルチなんてしないように。>>2にマルチ禁止と書いてあり、
   マルチの意味が分からなければ検索すれば出てくるので、「知らなかった」は通用しません。

 ★2.>>1★4に従わず、必要な情報を出さないと…
 A.自分の使用しているバージョンで使えない機能を答えられたり、VBA使えないとか使いたくないと書かないと
   VBAでの解決OKで自分でコード書けるものと勝手に解釈されて、「VBAで出来るから自分でコード書いて」程度の
   適当な回答を返されたりします。また、ここではVBAコード書けない人の丸投げ依頼を許可してますが
   これはきちんとルールに従って質問、依頼した人のみの特権です。

 ★3.情報・条件を後出しすると…
 A.後から出された情報は意図的に無視されたり、質問自体を放置されたりします。
   >>1★4の必須情報はもちろんのこと、要望や条件、既に試したことなどは、
   長文になってもいいので詳細かつ明確かつ具体的に書きましょう。


★VBAについて
 VBAとは、『Visual Basic for Application』の略で
  Application
  ├Workbooks
  |└Workbook
  |  ├Worksheets
  |  |└Worksheet
 というApplication以下のオブジェクトを、VB言語で操作するものを指します。 
 例えExcel付属のVBE(Visual Basic Editor)を利用しようとも、このApplication以下のブックやシート、
 セルやオブジェクト等を操作するもの以外はVBA分野の話ではないので、ここでは聞かないでください。


4 :名無しさん@そうだ選挙にいこう:2010/05/24(月) 19:40:08
★ Excelで出来ないこと、仕様上の制限 (括弧内は代用法)

 ▼環境・書式
  ・ 列数を256列以上、行数を65'536行以上に増やす (Excel2007では16'384列、1'048'579行扱える)
  ・ Excel2003以前で条件付き書式を3つ以上設定する (文字色だけなら、入力規則でも3つ設定可能。それ以外はVBA)
  ・ 行の高さを0.25きざみ以下の単位で指定する
  ・ セル内の文字を○で囲む、一部のみ2段にする (オートシェイプ、オブジェクト)
  ・ オートフィルタで英字の大小文字を区別する (小文字 → 半角、大文字 → 全角、と使い分ける)
  ・ 祝日を判断する (作業セルに祝日を列挙、VBA)
  ・ 同一列内でセル(行)ごとに列幅を変える、同一行内でセル(列)ごとに列高を変える (セルの結合)
  ・ ヘッダー・フッターのページ番号の開始番号任意指定、ページ番号演算、同シート内で違ったものを指定など
  ・ セルのサイズ(幅、高さ)を、長さの単位(ミリメートルなど)で指定する
  ・ 罫線幅の自由指定
  ・ 表示形式で「10/ 1」といった書式を指定し、日付が一桁の場合のみ日付の前にスペースを入れる (TEXT関数、VBA)
  ・ 書式設定の「折り返して全体を表示する」と「縮小して全体を表示する」を同時に使う (折り返しを有効にして、手動で文字サイズを調整)

 ▼操作
  ・ ファイラーの右クリックメニューからの新規作成で、Excelで設定したシート数のブックを作る (任意のシート数のテンプレートを作成)
  ・ 複数シートを選択して入力規則やシートの保護を設定する (VBA)
  ・ オートコンプリート機能を、別列や離れたセルで動作させる (VBA)
  ・ 選択範囲から一部を除く、Ctrlを押しながらの複数選択で一部を取り消す (VBA)
  ・ 優先キーを3つ以上指定しての並べ替え (優先度の低い方から順に並べ替える)
  ・ 1セルを分割 (分割したいセル以外を結合)


5 :名無しさん@そうだ選挙にいこう:2010/05/24(月) 19:42:40
★ Excelで出来ないこと、仕様上の制限 (括弧内は代用法)

 ▼数式・関数
  ・ 表示形式以外の書式の取得設定、書式情報を条件とする数式 (ユーザー定義関数)
  ・ 関数式でセルの選択状態を取得する (VBA)
  ・ セルの値でパスを補完して、開いてないブックのセルを参照する (VBA)
  ・ 入力したセルに結果を返す (VBA)
  ・ 範囲を引数にしての文字列連結 (ユーザー定義関数)
  ・ 値の書き換え、値の保持 (VBA)
  ・ 複数の結果を抽出、不定な数の結果を返す (VBA、結果の最大数が解っていれば最大数以上の式を論理式で組む)
  ・ 空白のセルの部分を上詰め、左詰めなどで表示する (作業セルを使って別セルに詰めて表示なら可能、それ以外はVBA)
  ・ VLOOKUP,HLOOKUP,MATCH等の関数で、検索語を全半角両方にマッチさせる (ユーザー定義関数)

 ▼VBA
  ・ ExecuteExcel4Macroの参照で空セルと0値を区別する
  ・ セルの値や変数値で直接変数名を指定する (配列、コレクション)
  ・ VBのコントロール配列と同じような操作をしたい
   (イベント以外ならコントロール名を「同名+連番」にしてControls(名前 & インデックス)で処理、イベントはクラスでWithEvents)

 ▼ユーザーフォーム
  ・ フォーム上から変更したプロパティ値の保持 (シートや外部ファイルに書き出して、次回読み込む)

 ▼グラフ
  ・ 棒グラフでひとつだけ突出したデータがあった場合に波線を入れて位置を合わせる
   (オートシェイプなどで見た目だけそうなるように弄る、別アプリでグラフを作り、オブジェクトとして挿入)
  ┌┐
  〜〜
  ||


6 :名無しさん@そうだ選挙にいこう:2010/05/24(月) 19:45:31
上記 「Excelで出来ないこと、仕様上の制限」 は、一般的に出来ないとされていること、出来ないと思われるものです。
間違いがある可能性もあるので、上記に挙がってるもので「コレはこうすれば出来るよ」というものがあったらご指摘ください。
Excel2007についても未確認な項目が多いので変更点が有ればご指摘下さい。

また、ここに書かれてないことでも、Excelで出来ないことはたくさんあります。
ここに書かれてないからといって必ず出来るはずだなんて思わないように。

>▼環境・書式
> ・ セルのサイズ(幅、高さ)を、長さの単位(ミリメートルなど)で指定する
補足
2007ではページレイアウトビューの表示時に限り、幅・高さともcm単位で表示され、
指定も同じくcm単位でできる。
ただし大元がインチ系なのでなかなかピタリの値は出ない。1cm→0.98cmのように
近い値に勝手に丸められる。

以上でテンプレ終わり (Excel総合相談所 89からコピペしました)


7 :複乳:2010/05/24(月) 21:04:22
>>1

8 :名無しさん@そうだ選挙にいこう:2010/05/24(月) 21:49:48
複乳の読み方を下でたしかめると「フクチチ」と出たのですが、合ってますか?

Sub gg()
MsgBox Application.GetPhonetic("複乳")
End Sub

9 :前996:2010/05/24(月) 21:54:23
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003 2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 フォームコントロール 連動

御願いします。 (前997様の方法では連動しませんでした)
シート1にあるフォームコントロール(チェックボックス1)に、
チェックをつけると、
シート2にあるフォームコントロール(チェックボックス4とフォームコントロール(チェックボックス5)
も連動してチェックが付き(シート1のチェックを外すと4と5も外れる)、
かつシート2のA1セルに○を入力するといった
方法をとりたいのですが、どのように記述(VBA)したら良いでしょうか?


10 :前スレ988:2010/05/24(月) 22:02:50
>>前スレ993さん、997さん
セルの色は引き継がれませんでした。
でも、全セルをコピーするのは大きな収穫でした。
ちょっとギコチないですが、それなりに動いてます。

Sub 保存()
WBN = ThisWorkbook.Name
Cells.Select
Selection.Copy
Workbooks.Add
ActiveSheet.Paste

For Each BTN In ActiveSheet.Shapes
BTN.Delete
Next BTN
ActiveWorkbook.Colors = Workbooks(WBN).Colors
Range("A1").Select
ActiveWorkbook.SaveAs "C:\data\" & "test.xls"
End Sub

11 :名無しさん@そうだ選挙にいこう:2010/05/24(月) 22:24:55
前スレの>>979です!
前スレ>>981様、ありがとうございます!
INDEX関数を、ようやく理解することができました!本当にありがとうございます!

12 :名無しさん@そうだ選挙にいこう:2010/05/24(月) 22:39:53
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel 2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 Excel 積算 グラフ

質問です。

月次のデータと、積算データをこのようなグラフで表したいのですが、
http://markezine.jp/static/images/article/10329/nc.gif
シートにどういう風にデータを入力していけばいいのかと、
どのグラフを選択すればわかりません(´;ω;`)ウッ…

どなたか親切な方、お教え頂けると幸いです。m(_ _)m

13 :名無しさん@そうだ選挙にいこう:2010/05/24(月) 22:47:45
>>9
フォームコントロールのチェックボックスは
Sheets("Sheet1").CheckBoxes("Check Box 1").Value
とかでアクセスする
値は xlon 又は xloff

14 :名無しさん@そうだ選挙にいこう:2010/05/24(月) 22:56:19
>>12
とりあえずグラフウィザードで折れ線にしたいものも含めて積み上げ棒グラフにして
折れ線にしたい系列を選んで右クリックしてグラフの種類を折れ線
かな

15 :名無しさん@そうだ選挙にいこう:2010/05/25(火) 01:59:05
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel 2007
【3 VBAが使えるか    .】 いいえ

シートが100あるのですがいちいち手入力せずに
EXCELかtxt状態の100行を貼り付けて一度に100シート名入力
できる方法はないでしょうか?

16 :名無しさん@そうだ選挙にいこう:2010/05/25(火) 02:19:36
imigawakarimasen

17 :名無しさん@そうだ選挙にいこう:2010/05/25(火) 02:28:00
SUIMASEN

【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel 2007
【3 VBAが使えるか    .】 いいえ

ブックに100シート作りシート名を付ける場合いちいち手入力せずに
EXCELかtxt状態の100行を貼り付けて一度に100シート名入力
できる方法はないでしょうか?

18 :名無しさん@そうだ選挙にいこう:2010/05/25(火) 04:29:59
A・B 2種類の数列のグラフを作った時、Aの数値が200000〜2000000で
Bが100%までの数値だとAだけが見えてBは見えません
右側に%軸を追加するためにBを右クリックするにも小さすぎてなかなか選択できません
このような場合簡単に右縦軸に%軸を作成する方法はないでしょうか?
ちなみにエクセル2007です

19 :名無しさん@そうだ選挙にいこう:2010/05/25(火) 05:53:15
zoomshinahare

20 :名無しさん@そうだ選挙にいこう:2010/05/25(火) 07:40:10
>>17
Alt+F11キー → 開いてるブックの名前で右クリック→挿入→標準モジュール。
以下 sub 〜 end sub までを全部コピペして、A列(A1〜空白行の前まで)に記入。
Alt+F8で Yatuke を選択して実行。

Sub Yattuke()
' A1以下に追加したい名前を列記して、Alt+F8で Yatuke を選択して実行。
' A列(A1〜空白行の前まで)に記入した内容でシートを追加するやっつけマクロ。
' やっつけなので、いろいろ不具合はあるが、とりあえず既存シートと同じ名前がなければ動く。
Dim SetSheet As String
Dim WorkRows As Integer
WorkRows = 1
SetSheet = ActiveSheet.Name
Do While Sheets(SetSheet).Cells(WorkRows, 1) <> ""

  Sheets.Add

  ActiveSheet.Name = Sheets(SetSheet).Cells(WorkRows, 1)
  Sheets(SetSheet).Select
  WorkRows = WorkRows + 1
Loop
End Sub

こういうのを求めてんのかな・・・?

21 :12:2010/05/25(火) 08:21:02
>>14
ありがとうございます!
なんとなくそれっぽいものが出来ました!

http://www.dotup.org/uploda/www.dotup.org911770.jpg

出来れば、△のマークを別の記号に、たとえば○のマークに変更とかって出来たりするんでしょうか?

22 :名無しさん@そうだ選挙にいこう:2010/05/25(火) 13:03:23
>>21
グラフを右クリックしてマーカーの変更、だったかな
形も色も大きさも変更できる
自分で作った画像も貼り付けられる

23 :名無しさん@そうだ選挙にいこう:2010/05/25(火) 13:11:27
Excelで文字列の中に含まれた制御コードを判定したいのですが、うまくいきません。

例えばA1に改行だけを入れてB1に
 =if (A1=chr(13),"改行","")
と入れて数式エラーになるのです…
どうすればいいんでしょうか

24 :名無しさん@そうだ選挙にいこう:2010/05/25(火) 13:18:56
すみません。

VBがchrなので、Excel関数もてっきり、同じかと思ってました。
charにしたらうまくいったよ!幸せゲットだよ!

25 :名無しさん@そうだ選挙にいこう:2010/05/25(火) 16:38:23
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel 2003
【3 VBAが使えるか    .】 いいえ

はじめて質問させてもらいます。
エクセルファイルで URLがいくつも入ったデータを持っているのですが、
URLの最後のアドレス部分のみ抜き取りたいのですが、可能でしょうか?
また可能な場合どういった作業になるのでしょう?


http://www.yahoo.co.jp/test/index.html
セルに↑のようなデータが入っています。最後の部分index.htmlだけ抽出したいのです。

どうぞよろしくお願いします。


26 :名無しさん@そうだ選挙にいこう:2010/05/25(火) 16:42:33
>>20
これはいわゆるVBAっていうやつでしょうか?
VBA使わずにできる方法はないでしょうか?
よろしくお願いします

27 :複乳:2010/05/25(火) 16:57:29
>>25
変なのしか出来ないな
A1=http://www.yahoo.co.jp/test/index.html
B1=FIND("/",$A1)
C1=IF(ISERROR(B1),RIGHT($A1,LEN($A1)-A1),FIND("/",$A1,B1+1))
後はCを→にオートフィル、下にもオートフィル
例だとG1に出てくる
このスレのアドレス(http://pc11.2ch.net/test/read.cgi/bsoft/1274695863/24n-)だとJ1にでてくるな
vba使ったらsplitで一発なんだけど
>>26
無い
shift+F11でシートは作れるけど、名前変更はショートカットでは出来ないな

28 :名無しさん@そうだ選挙にいこう:2010/05/25(火) 17:00:00
>>25
気持ち悪い方法を考えたぞ
=MID(A1,1+MAX(MOD(FIND("/",A1&"/",ROW(OFFSET(A1,1,0,LEN(A1),1))),LEN(A1))),LEN(A1))
としてctrl+shift+enter

29 :25:2010/05/25(火) 17:06:29
>>27 さん
すごいっす!!
めっちゃ助かりました。ありがとうございます。


30 :複乳:2010/05/25(火) 17:22:07
>>28
応用しすぎワロタ

31 :名無しさん@そうだ選挙にいこう:2010/05/25(火) 23:56:01
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003 2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 検索 置換 メニューバー

↓のようにメニューバーに検索、置換それぞれ文字も入力できるようにするのはどのようにすればいいのでしょうか?

http://deliver.vector.co.jp/screenshot/483/483497_00.jpg

32 :複乳:2010/05/26(水) 14:10:58
ツールバー カスタマイズ エクセル でぐぐれ

33 :名無しさん@そうだ選挙にいこう:2010/05/26(水) 21:55:00
次の表で、「見込実績」の欄に入る数字を自動化したいです。
数値が入るセルは「計画」と「実績a」〜「実績d」です。
実績の欄に何も入ってないときは「計画」の値が入ります。
-------------------------------------------------
   A        B       C      D       E
3           4月     5月     6月     7月
4  計画     1,000     500    2,000
5  見直
6  見込実績  1,000     500    2,000
7  実績a
8  実績b
9  付替
10 実績c
11 実績d


実績に数値が入ると、その合計が「見込実績」に入り、
「計画」との差があれば、翌月の「見込実績」に入ります。
-------------------------------------------------
   A        B       C      D       E
3           4月     5月     6月     7月
4  計画     1,000     500    2,000
5  見直
6  見込実績   600     900    2,000
7  実績a     300
8  実績b     200
9  付替
10 実績c      0
11 実績d     100

よろしくお願いします。

34 :名無しさん@そうだ選挙にいこう:2010/05/26(水) 22:04:25
どうせ「見直し」に数字が入ったら「見込実績」の数字を変えるんだろ?


35 :33:2010/05/26(水) 22:25:13
>>34
見直しは下期になって、計画に置き換わるので、今回の質問とは関係ありません。

36 :名無しさん@そうだ選挙にいこう:2010/05/26(水) 22:36:16
>33
9行目の「付替」が何を意味するかわからないけど、7行目〜11行目までの計が実績と仮定します。
B6セル =IF(COUNT(B7:B11)=0,B4,SUM(B7:B11))
C6セル =IF(COUNT(C7:C11)=0,IF(COUNT(B7:B11)=0,C4,C4+B4-B6),SUM(C7:C11)) で、右にフィルコピー
「付替」を実績に含めないのであれば、COUNT(B7:B11)→COUNT(B7:B8,B10:B11)などのように変更のこと。

ただし、当方OOoのCalcで作った(;→,の変更のみ)ので、あしからず

37 :名無しさん@そうだ選挙にいこう:2010/05/26(水) 22:45:11
>>25
関数やvbaなんか使わなくても
*/ を置換で消せば一発なんだが。

38 :33:2010/05/26(水) 23:09:08
>>36
ありがとうございます。
B6は、=IF(AND(B7="",B8="",B10="",B11=""),B4,B7+B8+B10+B11)と
考えてみましたが、=IF(COUNT(B7:B11)=0,B4,SUM(B7:B11))の方が
シンプルでいいですね。

39 :名無しさん@そうだ選挙にいこう:2010/05/26(水) 23:19:54
>33 まあおんなじだけど
B6 : =IF(SUM(B7:B11)>B9,SUM(B7:B11)-B9,B4)
C6 : =IF(SUM(C7:C11)>C9,SUM(C7:C11)-C9,C4+B4-B6)

40 :名無しさん@そうだ選挙にいこう:2010/05/27(木) 00:35:24
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2000

エラーが出るのでF8で検証してます。
@もAもセレクトしてくれるのに、Bで
実行時エラー424
オブジェクトが必要です というエラーが出ます。
なにがマズーでしょうか?

@ Cells(i, 12).Select
A Range("A65536").End(xlUp).Offset(, 2).Select
A Cells(i, 12).Copy Destination:=Range("A65536").End(xlUp).Offset(, 2)

41 :名無しさん@そうだ選挙にいこう:2010/05/27(木) 00:41:22
>>32
分かりません…

42 :名無しさん@そうだ選挙にいこう:2010/05/27(木) 00:45:15
エラーが出るのでF8で検証してます。
(1)も(2)もセレクトしてくれるのに、(3)で
実行時エラー424
オブジェクトが必要です というエラーが出ます。
なにがマズーでしょうか?

(1) Cells(i, 12).Select
(2) Range("A65536").End(xlUp).Offset(, 2).Select
(3) Cells(i, 12).Copy Destination:=Range("A65536").End(xlUp).Offset(, 2)

43 :複乳:2010/05/27(木) 00:53:34
>>40
ならん。多分iが0か65537以上になっている
と思ったが違うかなー。
コードを全部教えて欲しい
>>41
新しいツールバー作ってボタン乗せてマクロの記録で記録したコード登録と思う
やった事ないけど
また明日

44 :名無しさん@そうだ選挙にいこう:2010/05/27(木) 01:05:00
>>43
Cells(i, 12).Copy Destination:=Range("A65536").End(xlUp).Offset(0, 2) にしたら動きました。
なんででしょう???



ついでに・・・
Range(Cells(i, 15), Cells(i, 18)).Copy Destination:=Range("A65536").End(xlUp).Offset(0, 4) の値を
プラスマイナス反転させるにはどうすればいいでしょうか?
-(Range(Cells(i, 15), Cells(i, 18)).Copy) と書いたらコンパイルエラーになってしまいました(><)

45 :複乳:2010/05/27(木) 01:35:12
>>44
知らん
一旦変数に入れて*-1
もしくはcells(1,1).value=-cells(1,2).value
toka


46 :複乳:2010/05/27(木) 09:45:47
>>41
何でわかんねーンだよw
ttp://www1.axfc.net/uploader/Img/so/83630.jpg
こんな漢字
>>44
知らんってのはoffsetの件ね
引数は0でも入れておいたほうがいいんじゃない

-(Range(Cells(i, 15), Cells(i, 18)).Copy) 
に関しては、rangeはオブジェクトっていって色々な要素を持つ
Range(Cells(i, 15), Cells(i, 18))のvalue(値)なのかrow(行)なのかhidden(表示/非表示フラグ)わからない
そのどれをマイナスにするか分からないし、そもそも記述もテキトーすぎる
言いたいことは分かるんだけどな

47 :名無しさん@そうだ選挙にいこう:2010/05/27(木) 21:57:53
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel 2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

A12にオンラインで株価を取得する関数が入っているのですがOLで繋がっている時は
数値が表示されますが通信を切断すると関数の文字列に変わってしまいます。
なのでその値のみをB12に自動的にコピーしたいのですがどのような関数を用いれば良いでしょうか?
宜しくお願いします。。。


48 :名無しさん@そうだ選挙にいこう:2010/05/27(木) 22:06:20
値でコピーする
自動的にするためにはVBAしかない

49 :名無しさん@そうだ選挙にいこう:2010/05/27(木) 22:11:25
>>47
>>48に追加するとマクロの記録程度でできるから試してみれば?

50 :名無しさん@そうだ選挙にいこう:2010/05/27(木) 22:27:33
>>46
ありがとうございました。
メニューバーに文字を打ちたいのです!
マクロですか?

51 :名無しさん@そうだ選挙にいこう:2010/05/27(木) 22:29:29
やはりVBAですよね・・・ちょっと調べてみます

52 :33:2010/05/28(金) 00:15:59
33です。
36の例で試してたら、4月5月が0のとき6月は3,500になるべきが
2,500になってしまいます。

-------------------------------------------------
   A        B       C      D       E
3           4月     5月     6月     7月
4  計画     1,000     500    2,000
5 
6  見込実績      0        0    2,500
7  実績a       0       0
8  実績b       0       0
9 
10 実績c       0       0
11 実績d       0       0

39の例だと、予想外の数字が・・・
-------------------------------------------------
   A        B       C      D       E
3           4月     5月     6月     7月
4  計画     1,000     500    2,000
5 
6  見込実績      0     1,500    1,000    1,000   -1,000  1,000
7  実績a       0       0
8  実績b       0       0
9 
10 実績c       0       0
11 実績d       0       0

再度お助けを。

53 :名無しさん@そうだ選挙にいこう:2010/05/28(金) 00:21:32
意味のない引き算してる
多分1000を変えたらその金額も変わる

54 :33:2010/05/28(金) 00:37:22
自己解決しました。

55 :名無しさん@そうだ選挙にいこう:2010/05/28(金) 22:30:50
>>53


56 :名無しさん@そうだ選挙にいこう:2010/05/29(土) 00:23:09
>>44
…Offset(, 2)はダメで…Offset(0, 2)なら動く
なんて事はないよ。問題は別にある。
貧乳も余計なアドバイスしない方がいい。
あと、インタプリタにコンパイルエラーは無いし
マイナスのオブジェクトも存在しない。

57 :名無しさん@そうだ選挙にいこう:2010/05/29(土) 00:40:10
>インタプリタにコンパイルエラーは無いし
へぇ〜
http://uproda.2ch-library.com/250644fbW/lib250644.jpg

58 :名無しさん@そうだ選挙にいこう:2010/05/29(土) 01:17:56
恐れ入りますが、お詳しい方宜しくお願いします。

日付  1日  2日  3日  4日  5日
10 10 15 20 10
15 10 20 15 20
10 10 10 10 10
日計   35 30 45 45 40(オートSUM済)

累計   35 65 110 155 195


当日の累計を出す際ですが、自動的に前日の累計に今日入力した
日計を足す操作方法を教えてください。前任者は、前日の累計を
クリックして横に引っ張ったまま、今日の日計の部分をクリック
すると加算された累計が出ると言うのですが、何度やっても出来
ないので、自分で計算して手入力してます。初歩的なことで、
恐縮ですが、お願いします。

59 :38:2010/05/29(土) 01:27:56
申しワケありません。日付の下の数字が、全部左に寄ってしまった・・・


60 :名無しさん@そうだ選挙にいこう:2010/05/29(土) 05:08:15
"日付"がA1セルに入ってるとして、
累計の左から=B5, =B7+C5と入れてオートフィル・・・じゃダメなの?

61 :Cherry ◆d/pQlCc6hA :2010/05/29(土) 05:51:54
>>58
「累計」が6行目だとして、
B6=SUM($B5:B5)、右にオートフィルでいかがでしょう。

62 :名無しさん@そうだ選挙にいこう:2010/05/29(土) 20:32:09
>>58
=SUM(B5,A6)

63 :名無しさん@そうだ選挙にいこう:2010/05/29(土) 20:38:52
>>58
累計の出し方も分からないなら見込みがないからやめた方がいいかもね。
上のセルと左のセルを足すだけだろ?
いちいち最初から合計するやつはヴァカ。

64 :名無しさん@そうだ選挙にいこう:2010/05/29(土) 21:04:04
【1 OSの種類         .】 WindowsXP SP4
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】Dim hogehoge As Worksheet

【やりたいこと】
・他のブックのシートを書き出したい。
 セルA2に任意のブック「piyo.xls」のアドレス「c:\hoge\piyo.xls」を入力しておき、 ブック「piyo.xls」のシート名をセルA4以下に書き出したい。

【やってみたこと】
↓これだと、このマクロのあるブックに含まれるシートがセルA4以下に書き出されてしまう。
Sub MCR_FindSheetName()
Dim tempSheet As Worksheet
Range("A4").Select
For Each tempSheet In Worksheets
With ActiveCell
.Value = tempSheet.Name
.Offset(1).Select
End With
Next
End Sub

65 :名無しさん@そうだ選挙にいこう:2010/05/29(土) 21:39:27
>>64
そりゃ、ブックを何も指定してないから・・・

サンプル

Sub MCR_FindSheetName()
Dim tempSheet As Worksheet
Dim r As Range
Set r = ActiveSheet.Range("A4")
Workbooks.Open (Range("a2").Value)
For Each tempSheet In Worksheets
With r
.Value = tempSheet.Name
Set r = .Offset(1)
End With
Next
End Sub



66 :名無しさん@そうだ選挙にいこう:2010/05/29(土) 21:57:47
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 フーリエ級数+Excel,マクロなど:似たことをしようとしているページは見つけましたがよくわからずです

【やりたいこと】
フーリエ級数の計算をExcelにやらせたいと考えています。具体的には元の関数f(x)に対して成り立つフーリエ級数 f(x)=a0/2 + Σ[k=1→∞](ak*coskx + bk*sinkx) を計算させるというものです。
ただフーリエ係数のうちa0を含めakは0であることが既知ですので、f(x)=Σ[k=1→∞](bk*sinkx)のみの計算をしようとしています。

現在
・B1から下(B列)にはθ[rad]、-π〜πを360個のセルで
・C1から下(C列)にはk (ex) C1セルには1、C2セルには2・・・
・O1から下(O列)にはbk (ex) O1セルにはb1、O2セルにはb2・・・

が計算済みとなっています。ここでQ列からフーリエ級数の計算をさせようと考え、
 Σ(bk × sinkθ) ですから

Q1セルに =$O$1*SIN($C$1*B1) → 下向きにオートフィル

と入力しました。これでb1*sin(1*θ)のみのΣになりますよね?続いてR列には第二次までにしようと考え、

R1セルに =$O$1*SIN($C$1*B1)+$O$2*SIN($C$2*B1) → 下向きにオートフィル

と入力しました。これでb1*sin(1*θ)+b2*sin(2*θ)になりますよね?

これをS,T,U・・・と高調波を増やしながら演算させていきたいのですが、このように「計算項をどんどん増やしていく」という作業が当方わかりません。
理想としては kを指定するセルがあって、ここに100などと入力すると100次高調波までΣされたものが△1セルに出力される、なんてことをしてみたいのですが、関数では実現不可能なのでしょうか?
マクロを使っても構いません。当方マクロの知識がなく、途方に暮れております。

何か質問があれば迅速な回答を心がけますので、よろしくお願いいたします。


67 :名無しさん@そうだ選挙にいこう:2010/05/29(土) 22:45:51
複合参照を使う。それまでの計算結果を使う。

たとえば、1行目のB〜J列に1〜9。A列2〜10行目に1〜9を入れて
B2に =$A2*B$1 として下と右にオートフィルすれば九九の表ができます。
B列はそのままでC2に =B2+$A2 として下と右にオートフィルしてもできます。
2行目はそのままでB3に =B2+B$1 として下と右にオートフィルしてもできます。

68 :64:2010/05/29(土) 23:01:31
>>65
Set r = ActiveSheet.Range("A4")
Workbooks.Open (Range("a2").Value)

ここの箇所が思いつかなかった。THXです。

69 :名無しさん@そうだ選挙にいこう:2010/05/30(日) 00:08:01
文字の下の下線なのですが
担当者___________________ってやりたい場合(担当者の下にも下線があります)スペースを入れると一時的に下線が引かれるのですが
他のセルをクリックすると消えてしまうのですがこのようなやり方は邪道なのでしょうか

70 :66:2010/05/30(日) 00:16:10
>>67さん
ありがとうございました。$1個っていう使い方が・・・。
無知で申し訳なかったです。

71 :名無しさん@そうだ選挙にいこう:2010/05/30(日) 01:51:20
>>68
ブックを指定しないのは気持ち悪いね。
エラー処理なしだと
Sub MCR_FindSheetName()
Dim tempSheet As Worksheet
Dim r As Range
Dim wb As Workbook
Set r = Range("A4")
Set wb = Workbooks.Open (Range("a2").Value)
For Each tempSheet In wb.Worksheets
 r.Value = tempSheet.Name
 Set r = r.Offset(1)
Next
End Sub

72 :名無しさん@そうだ選挙にいこう:2010/05/30(日) 07:08:36
>>69
当方の2002では他のセル選択しても消えないけど。

73 :名無しさん@そうだ選挙にいこう:2010/05/30(日) 12:16:39
VBAでセル内容を数式にしたいとき

cells(1,1).value="=sum(b2:b10)"
cells(1,1).formula="=sum(b2:b10)"
cells(1,1)="=sum(b2:b10)"

のどれも同じですよね?
なにか違いはあるのですか?
気になって夜も眠れません

74 :名無しさん@そうだ選挙にいこう:2010/05/30(日) 12:21:46
あと
cells(1,1).FormulaR2D2="=sum(b2:b10)"
みたいなのもあるらしいが、区別すべきですか?

75 :名無しさん@そうだ選挙にいこう:2010/05/30(日) 12:36:17
>>73
cells(1,1).value="=sum(b2:b10)"
の省略形が
cells(1,1)="=sum(b2:b10)"
なので、このふたつは全く同じ。

formula は知らん。

76 :73:2010/05/30(日) 12:48:08
>>75
どうもです

どなたかformulaのこと知りませんか?

77 :名無しさん@そうだ選挙にいこう:2010/05/30(日) 15:53:19
【1 OSの種類         .】 Windows xp home edition
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 IF関数 論理式 数式

--------------------------------------------------------------
エクセルの練習のために家計簿を作っており、以下のようなシートを作っています。

   A      B       C
4 2010/6/1   =A4 =IF(A4="日","休日",IF(A4="土","休日",IF(A4="金","休前日","平日")))

5 2010/6/2   =A5 =IF(A5="日","休日",IF(A5="土","休日",IF(A5="金","休前日","平日")))

6 2010/6/3   =A6 =IF(A6="日","休日",IF(A6="土","休日",IF(A6="金","休前日","平日")))

7 2010/6/4   =A7 =IF(A7="日","休日",IF(A7="土","休日",IF(A7="金","休前日","平日")))

---------------------------------------------------------------------------

B列はユーザー定義で「aaa」にしており、自動的にA列の曜日が出るようになっています。
B列に「月」、「火」、「水」、「木」と表示されるときは、C列に「平日」を、
B列に「金」と表示されるときは、C列に「休前日」を、
B列に「土」、「日」と表示されるときは、C列に「休日」を表示するため、
C列に「=IF(A4="日","休日",IF(A4="土","休日",IF(A4="金","休前日","平日")))」を入力しましたが、
全て表示が「平日」になってしまいます。

どうすれば「平日」、「休前日」、「休日」を表示されるか教えてください。


78 :名無しさん@そうだ選挙にいこう:2010/05/30(日) 16:28:46
>>77
A列もB列もシリアル値が入っているからね・・・

=IF(TEXT(A1,"aaa")="日","休日",IF(TEXT(A1,"aaa")="土","休日",IF(TEXT(A1,"aaa")="金","休前日","平日")))

でもweekday関数を使って

=IF(WEEKDAY(A1,2)>=6,"休日",IF(WEEKDAY(A1,2)=5,"休前日","平日"))

79 :名無しさん@そうだ選挙にいこう:2010/05/30(日) 17:12:10
どうもありがとうございます。

シリアル値という概念をはじめて知りました。

80 :名無しさん@そうだ選挙にいこう:2010/05/30(日) 17:27:26
>>73
Value は値を設定するプロパティ
Formula はA1形式の数式を設定するプロパティ
FormulaR2D2 では無く FormulaR1C1 はR1C1形式の数式を設定するプロパティ

そんで、Excelはプロパティを省略しても、ある程度区別してそれぞれのプロパティに
設定してくれるから違いが解りずらいけど

きちんと区別した方がいい

詳しくはヘルプをみた方が早い

81 :名無しさん@そうだ選挙にいこう:2010/05/30(日) 18:17:20
凄く初歩的な質問ですみませんが、
B列に1から順番にint型の数字を追加する際に、
C列に「B列に0.9かけた値を表示する」という数式を作りたいと思っています。
ただ、B列に追加されるデータ数が未知であり、時が立つとどんどん追加されます。
この時、C列に上記の数式を実現するには、どのセルにどのような数式を足せばいいでしょうか?
excel2000を使ってます

82 :名無しさん@そうだ選挙にいこう:2010/05/30(日) 18:21:37
>>81
うん?よく分からない
=IF(B1="","",B1*0.9)
下にコピー ってことじゃないよね?

83 :名無しさん@そうだ選挙にいこう:2010/05/30(日) 18:52:33
>>82
説明が下手ですみません。
式自体はそうなるかもしれませんが、B列に追加されるデータ数がどんどん増える可変長なのです。
B1〜BXまで、どんどんデータが追加されるとき、いちいちC列に>>82式をコピーしなくても、
自動的に、例えばB32にデータが入力されたらC32にB32*0.9の値が出力されるようにしたいのです

84 :名無しさん@そうだ選挙にいこう:2010/05/30(日) 18:56:37
77氏ではないですが・・・

77の例で、B列を条件(1) [セルの値が] [次の値に等しい] [="土"] にして
書式のフォント色を青にしましたが色が変わりません。

設定ミスでしょうか?

85 :名無しさん@そうだ選挙にいこう:2010/05/30(日) 19:06:43
>>84
だから・・ww
シリアル値が入っているからね・・・・

数式で
=TEXT(A1,"aaa")="土" とかにしてくれ

86 :名無しさん@そうだ選挙にいこう:2010/05/30(日) 19:09:26
>>83
最初から>>82の式をあらかじめコピーしておいたらいいじゃん(´・ω・`)
B列に何も入力していなかったら、見た目はブランクだよ

87 :名無しさん@そうだ選挙にいこう:2010/05/30(日) 19:15:18
>>86
アドバイスありがとうございます。
私も最初はそのように考えたのですが、データの数が100や200を超える予定であり、
かつ何個になるのか分からないので、どのようにすべきか悩んでおります…

88 :名無しさん@そうだ選挙にいこう:2010/05/30(日) 19:26:55
>87
B65535まで式を入れておけば悩むことはない

89 :名無しさん@そうだ選挙にいこう:2010/05/30(日) 19:55:55
>>85
d

90 :名無しさん@そうだ選挙にいこう:2010/05/30(日) 20:41:48
>>83
VBAのワークシートチェンジを使う
分からないor勉強する気がないなら冗談でも何でも無く
>>86>>88しかない
まぁC列には色つけてからオートフィルタでもすれば式の入れ忘れはそうそうないだろう

後は0.9かけてなにがしたいかによる
例えば合計なら=sum(b:b)*0.9でいいし平均なら=sum(b:b)*0.9/count(b:b)だ

91 :名無しさん@そうだ選挙にいこう:2010/05/30(日) 21:42:47
VBAでステートメントの辞書的な本で
初心者から中級者向けの本のおすすめを教えていただけませんか?

92 :名無しさん@そうだ選挙にいこう:2010/05/30(日) 21:47:25
>>90
ありがとうございます。
やりたいことは、0.9かけて小数点以下を切った値を和算したいのです。
全体を足してから0.9かけると別の値になってしまうため、上記の方法を考えています

93 :名無しさん@そうだ選挙にいこう:2010/05/30(日) 23:05:26
【1 OSの種類         .】 Windows XP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 たぶん
【4 VBAでの回答の可否】 可
If Cells(i, 4).Value - Cells(i, 12).Value = 0 Then で分岐したら
条件に合わない例が出てきたので、値をみたら-0.00000になってました。
見た目は小数点5ケタの数値で0なのに、なんでこうなってしまうのでしょうか?


94 :複乳:2010/05/30(日) 23:24:52
>>91
大抵の人は一冊テキトーに買って後は検索ってパターンが多いと思う
俺はかったことが無いけど
MSDN等を調べるか、やりたい事をぐぐったほうが早いと思う
ちなみにプログラム板にVBA専用のスレがある
>>92
配列数式かな
=SUM(INT(B1:B60000))
でCtrl+shift+enterで決定。配列数式の意味は検索して
>>93
多分それ、もっと少ない数じゃないか?-0.000000001とか
小数誤差とおもう。適当なところで切り捨てして比較した方が良いよ
If int(Cells(i, 4).Value*1000) - int(Cells(i, 12).Value*1000) = 0 Then
みたいな感じで
小数誤差の説明は長くなるのでぐぐってくれ

95 :名無しさん@そうだ選挙にいこう:2010/05/30(日) 23:47:08
>>94
ありがとうございます。配列数式をググってみて、一応理解したつもりなのですが、
配列数式では配列内の各値を0.9倍して端数を切り捨てしたものを合計する、とは出来るのでしょうか?

96 :名無しさん@そうだ選挙にいこう:2010/05/31(月) 00:13:24
配列数式をB1:B60000までというのもすごい発想。
>>95 できるけど、重くなるから。正直、良い方法とは思えない


97 :名無しさん@そうだ選挙にいこう:2010/05/31(月) 07:20:11
>>96
B1:B60000じゃないだろ?
1個だと思うなぁ。

98 :名無しさん@そうだ選挙にいこう:2010/05/31(月) 08:33:46
Windows7 32bit Excel2007を使用。

特定のキーを押せば、特定の文字を打ち込んだり、文字や背景の色を変えることって出来ますか?

例えば、F1を押せば「おはようございます」
F2を押せば「こんにちわ」 F3なら「こんばんわ」
F4を押せば背景が赤く F5なら背景が青く F6なら背景が緑
F7を押せば文字が赤く F8を押せば文字が青く
といった感じにです。

99 :名無しさん@そうだ選挙にいこう:2010/05/31(月) 08:43:37
>>95
配列で60000まで指定するよりは

=SUMPRODUCT(INT(OFFSET(B1,0,0,COUNTA(B:B),1)*0.9))

とかの方がいいと思うけれど、offsetも重くなるかな。それとこの式の意味が分からないと間違いの元だしね

100 :名無しさん@そうだ選挙にいこう:2010/05/31(月) 08:46:46
>>98
ファンクションキーはすでに割り当てられているから

http://office.microsoft.com/ja-jp/excel/HP100738481041.aspx

もうちょっと違うキーに割り当てることもできるけど、たぶん操作が難しくなるだけだと思うよ

338 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)