Sub...
y=Worksheets("sheet2").Cells(25,13).Value
Worksheets("sheet1").Range("B13").Value=z

これの意味を階層構造を含めて答えよ。

自分はzの値をyに代入するという意味だと思うのですが、それではだめで階層構造を含めてかけと言われるとわかりません。
どのような意味があるのでしょうか。
また、RangeとCellsの違いを教えてください。
お願いします!

このQ&Aに関連する最新のQ&A

A 回答 (1件)

ExcelVBAのオブジェクトの階層構造は、最上位が、Excelを表す「Applicationオブジェクト」で、その下からWorkbookオブジェクト→Worksheetオブジェクト・・・と続いています。



y = Worksheets("Sheet2").Cells(25, 13).Value は、
Worksheetオブジェクトの中の"Sheet2"というWorksheetオブジェクトのCellというオブジェクトの中の25行13列目のセルの値を 変数y に代入するということです。

Worksheets("Sheet1").Range("B13").Value = z は、
変数z に代入されている値を、Worksheetオブジェクトの中の"Sheet1"という名前のWorksheetのRangelというオブジェクトの中のB13という名前のRangeに入れるということです。

ご提示のコードだけでは 変数y と 変数z の関係はわかりません。

> また、RangeとCellsの違いを

Rangeはある範囲のセルを指定できます。(Rangeは”範囲”ですから)
Range("B13").Value = z ではRangeで1つのセルだけを指定しましたが、仮にA1からB3の範囲のセル全部に入力するなら、
Range("A1:B3").Value=z とすることができます。

Rangeの他に、1つのセルを指定するのにCells(行、列)という指定の仕方もあります。
Cells(1,1)とすればセルA1をさします。
Cells(3,2)とすればセルB3をさします。
Cells(行、列)で複数セル範囲は指定できません。Range("A1:B3")をどうしてもCellsを使ってあらわしたければ、Range(Cells(1,1),Cells(3,2))といった書き方をしなければなりません。
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qプログラミング入門に最適な言語

プログラミング入門に最適な言語
最近プログラミングに興味をもって、プログラミングに挑戦しようと思ってます。

最終的にC++へ行くつもりですが、何の言語からはじめるのがいいでしょうか。
よろしくお願いします。

Aベストアンサー

議論百出だろうと思います。

「Cを身につけてからC++を学ぶべきである」
と言う人もいるでしょう。

私は、そうは思いません。
(Cをバイパスし)いきなりC++で構わないと思います。

プログラミングが全く未経験であれば、
やはりGUIで結果がグラフィカルに出た方が楽しいと思います。

有償になってしまいますが
MFCを搭載したVC++ Standerd以上をお勧めします。

また、別の方法として
多少回り道になりますが
C#という手もあります。

これなら無償のExpressでも十分にGUI制作が楽しめます。

まずは、プログラミングの楽しさ、醍醐味を味わってみてください。

入門書等についてですが
あなたが趣味でコツコツプログラミングをし、
出来たものを自分だけで使うのが目的なら
何でもいいです。

ただし、プログラムを公開する
(フリー、商用問わず)
また、ソースコード(一部でも)
(こういうサイトで質問の為に提示することを含む)
つもりがあるなら、

「きちんとした書籍」

で学ぶことをお勧めします。
「10日で・・・」
とかうたっている物の中には
「動けばいい!」
という姿勢で書かれたものが多く、
ソースコードが非常に読みにくいです。

読みやすいソースコードであれば
こういうサイトでも回答が付きやすいですが、
読みにくいソースコードは
分析に非常に時間がかかるので
回答がなかなかつきません。

また、読みやすいソースコードは
バージョンアップも簡単ですし、

一般に
(例外はありますが)
動作も早く、コンパクトです。

頑張ってください!!!

議論百出だろうと思います。

「Cを身につけてからC++を学ぶべきである」
と言う人もいるでしょう。

私は、そうは思いません。
(Cをバイパスし)いきなりC++で構わないと思います。

プログラミングが全く未経験であれば、
やはりGUIで結果がグラフィカルに出た方が楽しいと思います。

有償になってしまいますが
MFCを搭載したVC++ Standerd以上をお勧めします。

また、別の方法として
多少回り道になりますが
C#という手もあります。

これなら無償のExpressでも十分にGUI制作が楽しめま...続きを読む

QVBA yがシート名の時Sheets(y)としたい

VBAにて

sheets("5") ”5”という名前のシートが有るとして、

y=5の時に
Sheets(y)としてSheet("5")と同じことを意味するには、
Sheets(y)のyをどのように書けば良いのでしょうか?

例えばSheets("y")ではダメですよね。
どなたか教えてください。お願いします。

Aベストアンサー

下記でもできますが
方法をすぐに忘れてしまいますね。
前の回答のほうがいいと思います。
もしくは、
数字でない文字を組み合わせたシート名にすればご希望のような書き方ができると思います。

Dim y As Long
y = 5
Sheets("" & y & "").Select

Qコンピュータープログラミング入門の本

コンピュータープログラミングを独学で学びたいと思ってます。
どのようなことがやりたいか一概にいえませんが、当面はHPを好き勝手に作れるようになったり、ある程度プログラミングが理解できるようになりたいと思ってます。
入門の本(解りやすく飽きさせない、ある程度網羅できる)
という本はないでしょうか??
お願いします。

Aベストアンサー

還暦まじかのじっちゃまです。
服飾デザイナでプログラマではありませんので参考程度に。

さて、数年前に「人もすなるHPとやらを我も」と思い立ちました。
まず、やったことは、HTMLとCSSとに関するW3Cの勧告の日本語訳のダウンロードと印刷。
脇に揃えた参考書は2冊です。

「プログラミング言語C第2版」(カーニハン&リッチー著)
「Web標準の教科書」(益子貴寛著)

HP作成の入門書は数あれど、所詮は、W3Cの勧告をあちこち抜粋したもの。
ですから、W3C勧告の入手をお勧めします。

「プログラミング言語C第2版」は、JavaScript の習得のためです。
同著の例文をJavaScriptで書けるようになれば、ほぼ、同言語の文法的なマスターは終了。
「プログラミング言語C第2版」は、かなり古いです。
だが、その例文の再現は、プログラミングの習得にもなり一石二鳥じゃないですかね。
かなり、プログラミングに関する基本的なことが学べますよ。

「Web標準の教科書」は、「XHTMLとCSSでサイトをつくる」上では大変に参考になりました。

なお、プログラミングの独学の成否は、入門書ではなくヘルプ文のみで壁を突破できるか否か。
還暦まじかのじっちゃまは、このように思いますよ。

還暦まじかのじっちゃまです。
服飾デザイナでプログラマではありませんので参考程度に。

さて、数年前に「人もすなるHPとやらを我も」と思い立ちました。
まず、やったことは、HTMLとCSSとに関するW3Cの勧告の日本語訳のダウンロードと印刷。
脇に揃えた参考書は2冊です。

「プログラミング言語C第2版」(カーニハン&リッチー著)
「Web標準の教科書」(益子貴寛著)

HP作成の入門書は数あれど、所詮は、W3Cの勧告をあちこち抜粋したもの。
ですから、W3C勧告の入手をお勧めします。

「プログ...続きを読む

Q.copy に、Rangeではなく Cells を使えませんか?

ブック間で、変数によるコピー貼付けをしたいのです

Workbooks(MyFName).Worksheets("部品表").Cells(j * 17 - 11, 2).Copy_
Workbooks(MyFName2).Worksheets("PartsList").Cells(k * 39 - 37, 2)
と書いて見ましたが、デバックしてしまいました。

.Activate の場合も
cellsは使えませんか?

どうぞ教えてください

Aベストアンサー

ただ、RANGEで括るだけでは動きませんので

Dim ws As Worksheet
Dim ws2 As Worksheet

Set ws = Workbooks(MyFName).Worksheets("部品表")
Set ws2 = Workbooks(MyFName2).Worksheets("PartsList")

ws.Range(ws.Cells(j * 17 - 11, 2), ws.Cells(j * 17 - 11, 2)).Copy _
ws2.Range(ws2.Cells(k * 39 - 37, 2), ws2.Cells(k * 39 - 37, 2))

Set ws = Nothing
Set ws2 = Nothing

又は、
Workbooks(MyFName).Worksheets("部品表").Range("B" & j * 17 - 11).Copy _
Workbooks(MyFName2).Worksheets("PartsList").Range("B" & k * 39 - 37)
でも動きます。
こちらの方が余り変更がなくて済みます。

ただ、RANGEで括るだけでは動きませんので

Dim ws As Worksheet
Dim ws2 As Worksheet

Set ws = Workbooks(MyFName).Worksheets("部品表")
Set ws2 = Workbooks(MyFName2).Worksheets("PartsList")

ws.Range(ws.Cells(j * 17 - 11, 2), ws.Cells(j * 17 - 11, 2)).Copy _
ws2.Range(ws2.Cells(k * 39 - 37, 2), ws2.Cells(k * 39 - 37, 2))

Set ws = Nothing
Set ws2 = Nothing

又は、
Workbooks(MyFName).Worksheets("部品表").Range("B" & j * 17 - 11).Copy _
Workbooks(MyFName2...続きを読む

Qプログラミング入門

プログラミング入門
今、私はプログラミングの勉強をしたいなーと思っています。それでホント初心者でも一からできるソフトはないでしょうか?または詳しく乗っているサイトを教えてください<m(__)m>
できればJAVAかCがいいです

Aベストアンサー

こういうのって人それぞれだと思いますが^^;

とりあえず、私は

http://wisdom.sakura.ne.jp/

このサイトで育ちました。

これから始めると言うのであれば開発環境が整っている言語が楽だと思うので

フリーならば

eclipseでjava

http://www.javadrive.jp/eclipse3/

hsp

http://hsp.tv/

フリーじゃないならば

visual studioをつかってVBやc言語

もしくは#1さんがおっしゃられているようにVBAあたりでしょうか

Q現在 target.value = format(target.value, "0.0"でテキストボ

現在 target.value = format(target.value, "0.0"でテキストボックスに0.0と表示されていますが、0.0の時は何も表示されないようにするにはどうすればいいか教えてください。よろしくお願いします。

Aベストアンサー

こんにちは

通常のセルであれば、書式設定で"0.0;-0.0;;@"のようなことで0を非表示にできますが、Format関数ではこの書式を解釈してくれないみたいですね。

シチュエーションがわからないけれど、面倒でも、単純になさりたい通りに処理すればよさそうに思いますが?
 If target.value = "0.0" Then target.value = ""
もしくは、
 If target.value = 0 Then target.value = ""
とか・・・

Qデバイスドライバのプログラミングでおすすめの入門本

Deamon Toolのような仮想マウントソフトを作りたいと考えています。
そこで、いろいろ調べているとWindows Device Kit(WDK)を使ってプログラミングをする必要があることが分かりました。

実際、この種のプログラミング本は少ないようで、おすすめの入門者が読めそうな本があれば教えてください。
ちなみに、C/C++言語の知識はあります。

Aベストアンサー

Windows Driver Kitには、サンプルコードとドキュメントが含まれています。

通常のWindowsアプリケーションを作成できる技量がある技術者であれば、サンプルコードとドキュメントが入門書の代わりになります。

通常のWindowsアプリケーションを作成できる技量がないのであれば、たとえ入門書があっても、読んでて内容が理解できないでしょうし、サンプルコードとドキュメントを見ても意味不明でしょう。

そういう訳で「入門書が要らない」ので「入門書がない」のです。

まずは、Windows Driver Kitのインストールセットを入手し、インストールしましょう。

QRangeプロパティとCellsプロパティ

お世話になります。

現在、VB.NET2003からExcel2003を操作するプログラムを作成しているのですが、基本的な点が一つ、わかりませんので、教えていただけないでしょうか?

Range("C5")は、Cells(5,3)
Range("B1:D5")は、Range(Cells(1,2), Cells(5,4))、
と表すことが出来ますが、
Range("A1:E1,A4:E7")はCellsプロパティではどのように指定すればよろしいのでしょうか?

以上、宜しくお願いいたします。

Aベストアンサー

2つのRangeを別に作成して、「Union メソッド」で結合するとか・・・

Qプログラミング入門者、言語の選択?

プログラミングは本当に初めてですが、言語の選択について質問させて下さい。
ある事がキッカケでプログラミングなる物を初めてみようと思ったのですが、
javaであったり、C+であったり・・・と色々な言語がある様で戸惑っています。
それぞれの言語を勉強するに当たり、必要な環境等は書店で売られている入門書で十分理解出来る(内容では無く用意するソフト等の事)のですが、入門の入門にでも該当するのでしょうか?どの言語が何に向いている(又は初心者向けor上級者向け等)と言った基礎の基礎って意外と無いものです。
家計簿ソフトの様な物(用途は違う)が出来たら最高なのですが、何(言語)から勉強したら良いのでしょう?
難易度の高低より、出来れば投資額が少なく、汎用性を重視したいのですが・・・
Windows CE等のPDAなんかでも稼働するソフトなら更に良いのですが・・・。
ps:難易度の高低より・・・以降の希望が無謀な事なのかどうかも分からない位ですが、
   初めて見ようと思った気持ちを大切に恥ずかしながら質問させて頂きます。よろしくお願いします。

Aベストアンサー

Excelはどうでしょう?

Excel???なんて思われるかもしれませんが、マクロ機能の中にVBAというBasicが搭載されています。これはMicrosoftの開発言語のVBとほぼ同じことができるものです。
Excelの上で動かせるのでExcelの機能も簡単にアクセスできますし、家計簿のようなものを作るのであれば簡単にできると思います(完成度の高いものを望むのであれば難しいですが)。

投資額についてはExcelならたいていのメーカー製パソコンには最初からインストールされているのでゼロに近いですよね。

WindowsCEで動かしたいのであれば...Microsoftはホームページ上でeMbeded Visual Toolsというのを無料でダウンロードできるようにしています。これを使えばVisual C++もしくはVisual Basicで開発をすることができます。この2つの選択肢からでしたらVisual Basicをお勧めしますが...PDAはその必要性があまりないのでしたら初めは考えない方が無難だと思います。

QRangeとcellsの範囲選択について

Range("D7:E27,G7:H27").Select
のような感じを
Range(cells(a,b),cells(c,d)・・・)
みたいな感じで変数が使える形で設定したのですが、
どうすればよろしいのでしょうか?

Aベストアンサー

Cellsを使う場合複数のRangeオブジェクトに分けてこれをUnionで合成します

Range( "D7:E27,G7:H27" )なら D7:E27とG7:H27の2つに分けます

Union( Range( Cells( 7, 4 ), Cells( 27, 5 ) ), _
    Range( Cells( 7, 7 ), Cells( 27, 8 ) ) ).Select
といった具合です


人気Q&Aランキング

おすすめ情報